Skip to content

Errors when using pyDataverse 0.4.0.beta1: HTTP 401 - Bad API key #245

Description

@liujinjie111

As discussed in 7/15 pyDataverse meeting, I am having additional errors using pyDataverse 0.4.0.beta1 with Python 3.10.
Here is the version I'm using: pyDataverse @ git+https://github.com/gdcc/pyDataverse.git@7f56e219f6158eafb61711c7419b1ee12d068993

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

for collection in dv.collections:
        print(collection.identifier)

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 40, in <module>
    for collection in dv.collections:
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\contentview.py", line 165, in __iter__
    ids = self._extract_ids()
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\collectionview.py", line 34, in _extract_ids
    for content in self.collection._raw_content:
  File "C:\Users\liuji\AppData\Local\Programs\Python\Python310\lib\functools.py", line 981, in __get__
    val = self.func(instance)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\collection.py", line 230, in _raw_content
    return self.native_api.get_collection_contents(self.identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 310, in get_collection_contents
    return self.get_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 474, in get_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

harvard_collection = dv.collections["harvard"]  # Access by alias

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 47, in <module>
    harvard_collection = dv.collections["harvard"]
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\contentview.py", line 215, in __getitem__
    item = self._fetch_item(identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\collectionview.py", line 50, in _fetch_item
    coll._metadata = self.dataverse.native_api.get_collection(identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 93, in get_collection
    return self.get_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 474, in get_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

collection = dv.collections[123]  # Access by database ID

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 54, in <module>
    collection = dv.collections[123]
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\contentview.py", line 215, in __getitem__
    item = self._fetch_item(identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\collectionview.py", line 50, in _fetch_item
    coll._metadata = self.dataverse.native_api.get_collection(identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 93, in get_collection
    return self.get_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 474, in get_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

for dataset in dv.datasets:
    print(dataset.title)

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 67, in <module>
    for dataset in dv.datasets:
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\contentview.py", line 165, in __iter__
    ids = self._extract_ids()
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\datasetview.py", line 34, in _extract_ids
    for content in self.collection._raw_content:
  File "C:\Users\liuji\AppData\Local\Programs\Python\Python310\lib\functools.py", line 981, in __get__
    val = self.func(instance)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\collection.py", line 230, in _raw_content
    return self.native_api.get_collection_contents(self.identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 310, in get_collection_contents
    return self.get_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 474, in get_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

dataset = dv.datasets["doi:10.5072/FK2/ABC123"]

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 76, in <module>
    dataset = dv.datasets["doi:10.5072/FK2/ABC123"]  # Access by DOI
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\datasetview.py", line 130, in __getitem__
    dataset = self.dataverse.fetch_dataset(identifier, version=version)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\dataverse.py", line 723, in fetch_dataset
    return self._internal_fetch_dataset(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\dataverse.py", line 757, in _internal_fetch_dataset
    dataset = self.native_api.get_dataset(identifier, version)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 473, in get_dataset
    return self.get_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 474, in get_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

dataset = dv.datasets[12345]

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 82, in <module>
    dataset = dv.datasets[12345]  # Access by database ID
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\datasetview.py", line 112, in __getitem__
    identifier = self._resolve_index_to_identifier(identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\datasetview.py", line 55, in _resolve_index_to_identifier
    self._ids = self._extract_ids()
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\views\datasetview.py", line 34, in _extract_ids
    for content in self.collection._raw_content:
  File "C:\Users\liuji\AppData\Local\Programs\Python\Python310\lib\functools.py", line 981, in __get__
    val = self.func(instance)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\collection.py", line 230, in _raw_content
    return self.native_api.get_collection_contents(self.identifier)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 310, in get_collection_contents
    return self.get_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 474, in get_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

This is the script I tried which is based on https://gdcc.github.io/pyDataverse/high-level/dataverse/

collection = dv.create_collection(
        alias="research-lab",  # Short, unique identifier (no spaces allowed)
        name="Research Laboratory",  # Human-readable display name
        description="A collection for research lab datasets and publications",  # What this collection is for
        affiliation="Department of Science",  # Which organization this belongs to
        dataverse_type="LABORATORY",  # What kind of collection this is
        dataverse_contacts=["lab@university.edu", "admin@university.edu"],  # Who to contact about this collection
        parent="root"  # Where to create it (usually "root" for top-level, or another collection's alias)
    )

This is the error I got:

Traceback (most recent call last):
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\trial.py", line 88, in <module>
    collection = dv.create_collection(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\dataverse\dataverse.py", line 530, in create_collection
    response = self.native_api.create_collection(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\native.py", line 146, in create_collection
    response = self.post_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 718, in post_request
    return self._sync_request(
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1298, in _sync_request
    return self._handle_response(response, model, is_collection)
  File "D:\Dataverse\Test_pyDataverse\Test_pyDataverse\env1\lib\site-packages\pyDataverse\api\api.py", line 1480, in _handle_response
    raise HTTPStatusError(
httpx.HTTPStatusError: ERROR: HTTP 401 - Bad API key

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:incomingNewly created issue to be forwardedtype:bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions