python-arango
python-arango copied to clipboard
Add PEP 561 guideline
Closes #203
How to test
-
pip install mypy git+https://github.com/ArangoDB-Community/python-arango.git@fix/mypy-py-typed
-
echo "from arango.database import StandardDatabase" >> temp.py
-
mypy temp.py
Codecov Report
Merging #208 (114fb44) into main (21c9e5d) will not change coverage. The diff coverage is
n/a
.
@@ Coverage Diff @@
## main #208 +/- ##
=======================================
Coverage 99.86% 99.86%
=======================================
Files 26 26
Lines 3723 3723
=======================================
Hits 3718 3718
Misses 5 5
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 21c9e5d...114fb44. Read the comment docs.
Issue is not solved as of 0ac6f9d
Issue is not solved as of 0ac6f9d
You should be able to put it in MANIFEST.in
to make sure it is included.
You should be able to put it in MANIFEST.in to make sure it is included.
I currently have global-include *.typed
in the MANIFEST.in
, it seems to be recognized since installing this branch via pip install
shows that there is an arango/py.typed
file 🤔
Update: not solved as of https://github.com/ArangoDB-Community/python-arango/pull/208/commits/114fb44f512a6786160a19e81d79b620fba3ab37
Hi, I've built the package in local like in CI and installed from local wheel and it fixes the issue:
(.venv-python-arango-local) pedrovicente@pedrovicente ~/cytora/test-mypy-arango pip install ../python-arango/dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl mypy
Processing /Users/pedrovicente/cytora/python-arango/dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl
Collecting mypy
Using cached mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl (10.0 MB)
Requirement already satisfied: setuptools>=42 in ./.venv-python-arango-local/lib/python3.9/site-packages (from python-arango==7.3.5.dev5+g114fb44) (65.4.1)
Collecting requests
Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting requests-toolbelt
Using cached requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
Collecting PyJWT
Using cached PyJWT-2.6.0-py3-none-any.whl (20 kB)
Collecting urllib3>=1.26.0
Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting mypy-extensions>=0.4.3
Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting typing-extensions>=3.10
Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting tomli>=1.1.0
Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<3,>=2
Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
Using cached idna-3.4-py3-none-any.whl (61 kB)
Installing collected packages: mypy-extensions, urllib3, typing-extensions, tomli, PyJWT, idna, charset-normalizer, certifi, requests, mypy, requests-toolbelt, python-arango
Successfully installed PyJWT-2.6.0 certifi-2022.12.7 charset-normalizer-2.1.1 idna-3.4 mypy-0.991 mypy-extensions-0.4.3 python-arango-7.3.5.dev5+g114fb44 requests-2.28.1 requests-toolbelt-0.10.1 tomli-2.0.1 typing-extensions-4.4.0 urllib3-1.26.13
[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(.venv-python-arango-local) pedrovicente@pedrovicente ~/cytora/test-mypy-arango mypy temp.py
Success: no issues found in 1 source file
You can see that I can reproduce the error from issue installing python-arango
from pypi:
(.venv-python-arango) pedrovicente@pedrovicente ~/cytora/test-mypy-arango pip install python-arango mypy
Collecting python-arango
Using cached python_arango-7.5.4-py3-none-any.whl (99 kB)
Collecting mypy
Using cached mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl (10.0 MB)
Requirement already satisfied: setuptools>=42 in ./.venv-python-arango/lib/python3.9/site-packages (from python-arango) (65.4.1)
Collecting requests
Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting PyJWT
Using cached PyJWT-2.6.0-py3-none-any.whl (20 kB)
Collecting urllib3>=1.26.0
Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting requests-toolbelt
Using cached requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
Collecting typing-extensions>=3.10
Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting mypy-extensions>=0.4.3
Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting tomli>=1.1.0
Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<3,>=2
Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
Using cached idna-3.4-py3-none-any.whl (61 kB)
Installing collected packages: mypy-extensions, urllib3, typing-extensions, tomli, PyJWT, idna, charset-normalizer, certifi, requests, mypy, requests-toolbelt, python-arango
Successfully installed PyJWT-2.6.0 certifi-2022.12.7 charset-normalizer-2.1.1 idna-3.4 mypy-0.991 mypy-extensions-0.4.3 python-arango-7.5.4 requests-2.28.1 requests-toolbelt-0.10.1 tomli-2.0.1 typing-extensions-4.4.0 urllib3-1.26.13
[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(.venv-python-arango) pedrovicente@pedrovicente ~/cytora/test-mypy-arango mypy temp.py
temp.py:1: error: Skipping analyzing "arango.database": module is installed, but missing library stubs or py.typed marker [import]
temp.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)
You can see how I've built the wheel from this branch and py.typed
is included in package
(.venv) ✘ pedrovicente@pedrovicente ~/cytora/python-arango fix/mypy-py-typed python setup.py sdist bdist_wheel
running sdist
running egg_info
writing python_arango.egg-info/PKG-INFO
writing dependency_links to python_arango.egg-info/dependency_links.txt
writing requirements to python_arango.egg-info/requires.txt
writing top-level names to python_arango.egg-info/top_level.txt
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'python_arango.egg-info/SOURCES.txt'
running check
creating python-arango-7.3.5.dev5+g114fb44
creating python-arango-7.3.5.dev5+g114fb44/.github
creating python-arango-7.3.5.dev5+g114fb44/.github/workflows
creating python-arango-7.3.5.dev5+g114fb44/arango
creating python-arango-7.3.5.dev5+g114fb44/docs
creating python-arango-7.3.5.dev5+g114fb44/docs/static
creating python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying files to python-arango-7.3.5.dev5+g114fb44...
copying .gitignore -> python-arango-7.3.5.dev5+g114fb44
copying .pre-commit-config.yaml -> python-arango-7.3.5.dev5+g114fb44
copying CONTRIBUTING.md -> python-arango-7.3.5.dev5+g114fb44
copying LICENSE -> python-arango-7.3.5.dev5+g114fb44
copying MANIFEST.in -> python-arango-7.3.5.dev5+g114fb44
copying README.md -> python-arango-7.3.5.dev5+g114fb44
copying pyproject.toml -> python-arango-7.3.5.dev5+g114fb44
copying setup.cfg -> python-arango-7.3.5.dev5+g114fb44
copying setup.py -> python-arango-7.3.5.dev5+g114fb44
copying .github/workflows/build.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying .github/workflows/codeql.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying .github/workflows/pypi.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying arango/__init__.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/api.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/aql.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/backup.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/client.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/cluster.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/collection.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/connection.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/cursor.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/database.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/errno.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/exceptions.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/executor.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/formatter.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/foxx.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/graph.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/http.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/job.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/pregel.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/py.typed -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/replication.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/request.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/resolver.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/response.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/result.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/typings.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/utils.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/version.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/wal.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying docs/Makefile -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/admin.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/analyzer.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/aql.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/async.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/auth.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/backup.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/batch.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/certificates.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/cluster.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/collection.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/conf.py -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/contributing.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/cursor.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/database.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/document.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/errno.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/errors.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/foxx.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/graph.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/http.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/index.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/indexes.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/logging.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/make.bat -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/overview.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/pregel.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/replication.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/schema.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/serializer.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/simple.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/specs.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/task.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/threading.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/transaction.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/user.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/view.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/wal.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/static/logo.png -> python-arango-7.3.5.dev5+g114fb44/docs/static
copying python_arango.egg-info/PKG-INFO -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/SOURCES.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/dependency_links.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/requires.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/top_level.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
Writing python-arango-7.3.5.dev5+g114fb44/setup.cfg
creating dist
Creating tar archive
removing 'python-arango-7.3.5.dev5+g114fb44' (and everything under it)
running bdist_wheel
running build
running build_py
copying arango/formatter.py -> build/lib/arango
copying arango/version.py -> build/lib/arango
copying arango/pregel.py -> build/lib/arango
copying arango/database.py -> build/lib/arango
copying arango/client.py -> build/lib/arango
copying arango/request.py -> build/lib/arango
copying arango/typings.py -> build/lib/arango
copying arango/utils.py -> build/lib/arango
copying arango/aql.py -> build/lib/arango
copying arango/collection.py -> build/lib/arango
copying arango/exceptions.py -> build/lib/arango
copying arango/executor.py -> build/lib/arango
copying arango/cursor.py -> build/lib/arango
copying arango/py.typed -> build/lib/arango
/Users/pedrovicente/cytora/python-arango/.venv/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
installing to build/bdist.macosx-13-arm64/wheel
running install
running install_lib
creating build/bdist.macosx-13-arm64/wheel
creating build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/errno.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/backup.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/formatter.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/version.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/job.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/pregel.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/database.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/client.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/graph.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/request.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/typings.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/__init__.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/response.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/wal.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/api.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/result.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/connection.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/utils.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/cluster.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/aql.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/replication.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/http.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/resolver.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/collection.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/py.typed -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/exceptions.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/executor.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/cursor.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/foxx.py -> build/bdist.macosx-13-arm64/wheel/arango
running install_egg_info
Copying python_arango.egg-info to build/bdist.macosx-13-arm64/wheel/python_arango-7.3.5.dev5+g114fb44-py3.9.egg-info
running install_scripts
creating build/bdist.macosx-13-arm64/wheel/python_arango-7.3.5.dev5+g114fb44.dist-info/WHEEL
creating 'dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl' and adding 'build/bdist.macosx-13-arm64/wheel' to it
adding 'arango/__init__.py'
adding 'arango/api.py'
adding 'arango/aql.py'
adding 'arango/backup.py'
adding 'arango/client.py'
adding 'arango/cluster.py'
adding 'arango/collection.py'
adding 'arango/connection.py'
adding 'arango/cursor.py'
adding 'arango/database.py'
adding 'arango/errno.py'
adding 'arango/exceptions.py'
adding 'arango/executor.py'
adding 'arango/formatter.py'
adding 'arango/foxx.py'
adding 'arango/graph.py'
adding 'arango/http.py'
adding 'arango/job.py'
adding 'arango/pregel.py'
adding 'arango/py.typed'
adding 'arango/replication.py'
adding 'arango/request.py'
adding 'arango/resolver.py'
adding 'arango/response.py'
adding 'arango/result.py'
adding 'arango/typings.py'
adding 'arango/utils.py'
adding 'arango/version.py'
adding 'arango/wal.py'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/LICENSE'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/METADATA'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/WHEEL'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/top_level.txt'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/RECORD'
removing build/bdist.macosx-13-arm64/wheel
Is there anything I'm missing @aMahanna? Could we merge this branch @joowani ?
LGTM
@joowani @aMahanna thank you!!! could you merge it?
@aMahanna @joowani any plans on merging it and release a new version?
Sorry for the delay @pvicente. Merged and will make a release soon.