Skip to content

In Python 3.14, glob module renamed _Globber internal class to _GlobberBase #492

@jeffstoner-scilo

Description

@jeffstoner-scilo

When using Python 3.13, the glob module has an internal class called _Globber. This is subclassed by artifactory (ref:

class _ArtifactoryGlobber(glob._Globber if IS_PYTHON_3_13_OR_NEWER else object):
). In Python 3.14, the _Globber class was renamed to _GlobberBase, resulting in an error when trying to use artifactory

Steps to reproduce:

  1. Pull python:3.14 from Dockerhub
  2. Install dohq-artifactory module using pip
  3. Import the artifactory package

Expected result: the module loads and methods can be used.
Actual result: AttributeError exception is thrown

Output demonstrating error:

$ docker run --rm -it python:3.14 /bin/bash
root@5c316304417b:/# python --version
Python 3.14.0
root@5c316304417b:/# pip install dohq-artifactory
Collecting dohq-artifactory
  Downloading dohq_artifactory-1.0.1-py3-none-any.whl.metadata (1.3 kB)
Collecting requests>=2.30.0 (from dohq-artifactory)
  Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB)
Collecting python-dateutil (from dohq-artifactory)
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting PyJWT~=2.0 (from dohq-artifactory)
  Downloading PyJWT-2.10.1-py3-none-any.whl.metadata (4.0 kB)
Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->dohq-artifactory)
  Downloading charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (37 kB)
Collecting idna<4,>=2.5 (from requests>=2.30.0->dohq-artifactory)
  Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)
Collecting urllib3<3,>=1.21.1 (from requests>=2.30.0->dohq-artifactory)
  Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests>=2.30.0->dohq-artifactory)
  Downloading certifi-2025.10.5-py3-none-any.whl.metadata (2.5 kB)
Collecting six>=1.5 (from python-dateutil->dohq-artifactory)
  Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Downloading dohq_artifactory-1.0.1-py3-none-any.whl (36 kB)
Downloading PyJWT-2.10.1-py3-none-any.whl (22 kB)
Downloading requests-2.32.5-py3-none-any.whl (64 kB)
Downloading charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (152 kB)
Downloading idna-3.11-py3-none-any.whl (71 kB)
Downloading urllib3-2.5.0-py3-none-any.whl (129 kB)
Downloading certifi-2025.10.5-py3-none-any.whl (163 kB)
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: urllib3, six, PyJWT, idna, charset_normalizer, certifi, requests, python-dateutil, dohq-artifactory
Successfully installed PyJWT-2.10.1 certifi-2025.10.5 charset_normalizer-3.4.4 dohq-artifactory-1.0.1 idna-3.11 python-dateutil-2.9.0.post0 requests-2.32.5 six-1.17.0 urllib3-2.5.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.

root@5c316304417b:/# python
Python 3.14.0 (main, Oct  8 2025, 21:26:42) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import artifactory
Traceback (most recent call last):
  File "<python-input-0>", line 1, in <module>
    import artifactory
  File "/usr/local/lib/python3.14/site-packages/artifactory.py", line 1523, in <module>
    class _ArtifactoryGlobber(glob._Globber if IS_PYTHON_3_13_OR_NEWER else object):
                              ^^^^^^^^^^^^^
AttributeError: module 'glob' has no attribute '_Globber'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions