"TypeError: Argument of type 'Bucket' cannot be assigned to parameter of type 'Bucket' in b2sdk.v2"
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Start with the v2 re-exports in the b2sdk/v2 package and the Bucket class it exposes, then compare them with the implementation under b2sdk/_internal. Check whether B2Api.get_bucket_by_name() returns the same class the public Bucket name points to, and reproduce the ls(latest_only=True) call. Done means the returned object passes the b2.Bucket annotation and ls() runs, or the import path that causes the mismatch is documented. Read the four comments first, since the maintainers may already have explained the cause.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Issue Description
When attempting to use the ls() method on a Bucket object obtained from b2sdk.v2.B2Api.get_bucket_by_name(), I encountered a TypeError stating that the Bucket argument type is incompatible with the expected 'Bucket' parameter type. It appears that get_bucket_by_name() may be returning an internal SDK type not intended for direct use, despite being accessed through the public API.
Steps to Reproduce
- Setup a basic environment with b2sdk.v2 configured with valid Backblaze B2 credentials.
- Fetch a
BucketusingB2Api.get_bucket_by_name(). - Attempt to list directories or files using the
Bucket.ls()method. - Observe the TypeError related to incompatible type assignment.
Expected Behavior
The Bucket object returned from get_bucket_by_name() should be fully compatible with other methods expecting a Bucket type as defined in the b2sdk.v2 public API.
Actual Behavior
A TypeError is raised suggesting type incompatibility, indicating possible exposure of internal types in what should be a public API method.
Environment
- Python version: 3.12
- b2sdk version: 2.1
Additional Context
This issue seems to stem from recent changes in the SDK where non-api packages were moved to b2sdk._internal as noted in the changelog for version 2.0.0. It would be helpful to confirm whether get_bucket_by_name() should return a type from b2sdk.v2 or if there's a recommended workaround for this type mismatch.
import b2sdk.v2 as b2
def get_bucket():
info = b2.InMemoryAccountInfo()
b2_api = b2.B2Api(info)
b2_api.authorize_account("production", settings.BACKBLAZE_KEY_ID, settings.BACKBLAZE_APPLICATION_KEY)
return b2_api.get_bucket_by_name(settings.BACKBLAZE_BUCKET_NAME)
def list_directories(bucket: b2.Bucket):
try:
for file_version, folder_name in bucket.ls(latest_only=True):
print(folder_name)
except TypeError as e:
print(f"TypeError: {str(e)}")
# Example
bucket = get_bucket()
list_directories(bucket)
- Lingua principale
- Python
- Stelle
- 214
- Fork
- 68
- Merge medio
- 51m
- PR unite (30g)
- 6
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Backblaze/b2-sdk-python
-
Download and copy sync actions print remote file names without escape_control_charsForse già presa @dreyfus92 l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Backblaze/b2-sdk-python#631 ·
I maintainer di solito rispondono entro 1 giorno
-
SqliteAccountInfo profile name validation uses "re.match", so only the first character is checkedForse già presa @nazarli-shabnam l’ha presa 9 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Backblaze/b2-sdk-python#629 ·
I maintainer di solito rispondono entro 1 giorno
-
Adopt the AI-native SDLC and repository policiesForse già presa @goanpeca l’ha presa 18 giorni fa. Apertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
Backblaze/b2-sdk-python#634 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
Backblaze/b2-sdk-python#630 ·
I maintainer di solito rispondono entro 1 giorno
-
ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)Forse di nuovo libera @ffumero2003 l’ha presa 37 giorni fa e non c’è nessuna pull request aperta. Apertabug testing
Backblaze/b2-sdk-python#627 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Backblaze/b2-sdk-python
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
btclib-org/btclib-node#2505 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
open-webui/open-webui#34462 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
gorakhargosh/watchdog#1462 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
openwisp/openwisp-monitoring#889 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
IETF-Hackathon/pqc-certificates#351 ·
I maintainer di solito rispondono entro 2 giorni