dlmachine 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. dlmachine-0.0.1/.bumpversion.cfg +8 -0
  2. dlmachine-0.0.1/.codecov.yaml +17 -0
  3. dlmachine-0.0.1/.coveragerc +22 -0
  4. dlmachine-0.0.1/.editorconfig +12 -0
  5. dlmachine-0.0.1/.github/ISSUE_TEMPLATE/2-bug-report.yaml +120 -0
  6. dlmachine-0.0.1/.github/ISSUE_TEMPLATE/3-documentation-improvement.yaml +58 -0
  7. dlmachine-0.0.1/.github/ISSUE_TEMPLATE/4-feature-request.yaml +67 -0
  8. dlmachine-0.0.1/.github/ISSUE_TEMPLATE/config.yaml +6 -0
  9. dlmachine-0.0.1/.github/pull_request_template.md +39 -0
  10. dlmachine-0.0.1/.github/workflows/build.yaml +23 -0
  11. dlmachine-0.0.1/.github/workflows/ci.yml +95 -0
  12. dlmachine-0.0.1/.gitignore +23 -0
  13. dlmachine-0.0.1/.pre-commit-config.yaml +110 -0
  14. dlmachine-0.0.1/.readthedocs.yaml +22 -0
  15. dlmachine-0.0.1/AGENTS.md +63 -0
  16. dlmachine-0.0.1/CODE_OF_CONDUCT.md +128 -0
  17. dlmachine-0.0.1/CONTRIBUTING.md +57 -0
  18. dlmachine-0.0.1/LICENSE +674 -0
  19. dlmachine-0.0.1/PKG-INFO +205 -0
  20. dlmachine-0.0.1/README.md +163 -0
  21. dlmachine-0.0.1/docs/Makefile +20 -0
  22. dlmachine-0.0.1/docs/make.bat +35 -0
  23. dlmachine-0.0.1/docs/src/conf.py +125 -0
  24. dlmachine-0.0.1/docs/src/developer_docs.md +58 -0
  25. dlmachine-0.0.1/docs/src/index.rst +30 -0
  26. dlmachine-0.0.1/download_manager/__init__.py +41 -0
  27. dlmachine-0.0.1/download_manager/_constants.py +13 -0
  28. dlmachine-0.0.1/download_manager/_curlopt.py +171 -0
  29. dlmachine-0.0.1/download_manager/_data/__init__.py +20 -0
  30. dlmachine-0.0.1/download_manager/_data/url.yaml +1 -0
  31. dlmachine-0.0.1/download_manager/_descriptor.py +234 -0
  32. dlmachine-0.0.1/download_manager/_downloader.py +949 -0
  33. dlmachine-0.0.1/download_manager/_manager.py +625 -0
  34. dlmachine-0.0.1/download_manager/_metadata.py +93 -0
  35. dlmachine-0.0.1/download_manager/_misc.py +107 -0
  36. dlmachine-0.0.1/download_manager/_session.py +10 -0
  37. dlmachine-0.0.1/pyproject.toml +182 -0
  38. dlmachine-0.0.1/scripts/demo_failure.py +69 -0
  39. dlmachine-0.0.1/scripts/demo_success.py +61 -0
  40. dlmachine-0.0.1/tests/conftest.py +41 -0
  41. dlmachine-0.0.1/tests/test_curlopt.py +22 -0
  42. dlmachine-0.0.1/tests/test_descriptor.py +30 -0
  43. dlmachine-0.0.1/tests/test_downloader.py +234 -0
  44. dlmachine-0.0.1/tests/test_manager.py +170 -0
  45. dlmachine-0.0.1/uv.lock +1677 -0
@@ -0,0 +1,8 @@
1
+ [bumpversion]
2
+ current_version = 0.0.1
3
+ commit = True
4
+ tag = True
5
+ files = pyproject.toml
6
+
7
+ parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
8
+ serialize = {major}.{minor}.{patch}
@@ -0,0 +1,17 @@
1
+ # Based on pydata/xarray
2
+ codecov:
3
+ require_ci_to_pass: no
4
+
5
+ coverage:
6
+ status:
7
+ project:
8
+ default:
9
+ # Require 1% coverage, i.e., always succeed
10
+ target: 1
11
+ patch: false
12
+ changes: false
13
+
14
+ comment:
15
+ layout: diff, flags, files
16
+ behavior: once
17
+ require_base: no
@@ -0,0 +1,22 @@
1
+ [paths]
2
+ source =
3
+ download_manager
4
+ */site-packages/download-manager
5
+
6
+ [run]
7
+ branch = true
8
+ parallel = true
9
+ source = download_manager
10
+ omit = */__init__.py
11
+
12
+ [report]
13
+ exclude_lines =
14
+ \#.*pragma:\s*no.?cover
15
+
16
+ if __name__ == .__main__.
17
+
18
+ ^\s*raise AssertionError\b
19
+ ^\s*raise NotImplementedError\b
20
+ ^\s*return NotImplemented\b
21
+ show_missing = true
22
+ precision = 2
@@ -0,0 +1,12 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 4
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [Makefile]
12
+ indent_style = tab
@@ -0,0 +1,120 @@
1
+ name: 🪳 Bug Report
2
+ description: Create a report to help us reproduce and fix the bug
3
+
4
+ title: "[BUG]: "
5
+ labels:
6
+ - "bug"
7
+ - "triage"
8
+
9
+ body:
10
+ - type: markdown
11
+ attributes:
12
+ value: >
13
+ **Before submitting a bug, please make sure the issue hasn't been already addressed by [searching through](https://github.com/saezlab/download-manager/issues).**
14
+ Please write your bug report in English to ensure it can be understood and addressed by the development team.
15
+
16
+ #---------------- Installed From --------------
17
+ - type: dropdown
18
+ id: source
19
+ attributes:
20
+ label: Source
21
+ description: download-manager has been installed from
22
+ options:
23
+ - conda
24
+ - pip
25
+ - uv
26
+ - poetry
27
+ - other (specify in text)
28
+ validations:
29
+ required: True
30
+
31
+ - type: input
32
+ id: source-other
33
+ attributes:
34
+ label: other source
35
+ placeholder: e.g., from source
36
+
37
+ #-------------- Python version --------------
38
+ - type: input
39
+ id: Python
40
+ attributes:
41
+ label: Python version
42
+ placeholder: e.g., 3.10
43
+ validations:
44
+ required: true
45
+
46
+ #-------------- download-manager version --------------
47
+ - type: input
48
+ id: download-manager-version
49
+ attributes:
50
+ label: download-manager version
51
+ placeholder: e.g., download-manager v0.0.1
52
+ validations:
53
+ required: true
54
+
55
+ #-------------- OS Platform and distribution --------------
56
+ - type: input
57
+ id: OS
58
+ attributes:
59
+ label: OS platform and distribution
60
+ placeholder: e.g., Linux Ubuntu 16.04
61
+
62
+ #-------------- Describe the Bug --------------
63
+ - type: textarea
64
+ attributes:
65
+ label: Describe the bug
66
+ description: |
67
+ Please provide a clear and concise description of the bug.
68
+
69
+ If applicable, include a minimal example that allows us to reproduce the error by running the code.
70
+ It's crucial that the snippet is as short and focused as possible, so please remove any unnecessary code
71
+ to help us debug efficiently. We will copy and paste your code, and we expect to see the same result as you did.
72
+ Avoid using external data and make sure to include all relevant imports, etc. For example:
73
+
74
+ ```python
75
+ # All necessary imports at the beginning
76
+ import download_manager as dm
77
+
78
+ # A succinct reproducing example trimmed down to the essential parts:
79
+ manager = dm.DownloadManager()
80
+
81
+ ```
82
+
83
+ If the code is too lengthy (though we hope it's not), feel free to place it in a public gist and share the link in the issue: https://gist.github.com.
84
+
85
+ Instead of providing the expected results, please paste or describe the actual results you observe. If you encounter an error, include the error message along with the full traceback. It's helpful to wrap error messages in ```` ```triple quotes blocks``` ````.
86
+ placeholder: |
87
+ A clear and concise description of what the bug is.
88
+
89
+ ```python
90
+ # Sample code to reproduce the problem
91
+ ```
92
+
93
+ ```
94
+ The error message you got, with the full traceback.
95
+ ```
96
+ validations:
97
+ required: true
98
+
99
+ #-------------- Relevant LOG Output --------------
100
+ - type: textarea
101
+ id: logs
102
+ attributes:
103
+ label: Relevant LOG output
104
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
105
+ render: shell
106
+
107
+ #-------------- Code of Conduct --------------
108
+ - type: checkboxes
109
+ id: terms
110
+ attributes:
111
+ label: Code of Conduct
112
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/saezlab/download-manager/blob/main/CODE_OF_CONDUCT.md).
113
+ options:
114
+ - label: I agree to follow this project's Code of Conduct
115
+ required: true
116
+
117
+ - type: markdown
118
+ attributes:
119
+ value: >
120
+ Thank you for your contribution! 🎉 – Saezlab Team
@@ -0,0 +1,58 @@
1
+ name: 📔 Documentation Improvement
2
+ description: Report wrong or missing documentation
3
+
4
+ title: "[DOC]: "
5
+ labels:
6
+ - "docs"
7
+ - "triage"
8
+ projects: ["download-manager/1"]
9
+
10
+ body:
11
+ #---------------- Location of the documentation --------------
12
+ - type: textarea
13
+ id: location
14
+ attributes:
15
+ label: Location of the documentation
16
+ description: >
17
+ Please provide the location of the documentation. This could be a URL to the documentation page or a specific section within the documentation where you found the issue.
18
+ For example, if the issue is in the API reference, please provide the URL to that specific page. If it's in the README, please specify that as well.
19
+ If you're unsure about the exact location, please provide as much detail as possible to help us find it.
20
+ For example, you could say "The issue is in the API reference section under the 'DownloadManager' class" or "The issue is in the README under the 'Installation' section".
21
+ placeholder: readme, API reference, etc.
22
+ validations:
23
+ required: true
24
+
25
+ #---------------- Problem Description --------------
26
+ - type: textarea
27
+ id: problem
28
+ attributes:
29
+ label: Documentation problem
30
+ description: >
31
+ Please provide a description of what documentation you believe needs to be fixed/improved
32
+ validations:
33
+ required: true
34
+
35
+ #---------------- Suggested Fix --------------
36
+ - type: textarea
37
+ id: suggested-fix
38
+ attributes:
39
+ label: Suggested fix for documentation
40
+ description: >
41
+ Please explain the suggested fix and **why** it's better than the existing documentation
42
+ validations:
43
+ required: true
44
+
45
+ #-------------- Code of Conduct --------------
46
+ - type: checkboxes
47
+ id: terms
48
+ attributes:
49
+ label: Code of Conduct
50
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/saezlab/download-manager/blob/main/CODE_OF_CONDUCT.md).
51
+ options:
52
+ - label: I agree to follow this project's Code of Conduct
53
+ required: true
54
+
55
+ - type: markdown
56
+ attributes:
57
+ value: >
58
+ Thank you for your contribution! 🎉 – Saezlab Team
@@ -0,0 +1,67 @@
1
+ name: ✨ Feature Request
2
+ description: Submit a proposal/request for a new download-manager feature
3
+
4
+ title: "[FEAT]: "
5
+ labels:
6
+ - "feature"
7
+ projects: ["download-manager/1"]
8
+
9
+ body:
10
+ - type: markdown
11
+ attributes:
12
+ value: >
13
+ **Note:** Please write your bug report in English to ensure it can be understood and addressed by the development team.
14
+
15
+ #-------------- Feature type --------------
16
+ - type: dropdown
17
+ id: feature-type
18
+ attributes:
19
+ label: Feature Type
20
+ description: Please select what type of feature request you would like to propose.
21
+ options:
22
+ - Add new functionality to download-manager
23
+ - Change existing functionality in download-manager
24
+ - Remove existing functionality in download-manager
25
+ multiple: false
26
+ validations:
27
+ required: true
28
+
29
+ #-------------- Feature description and motivation --------------
30
+ - type: textarea
31
+ attributes:
32
+ label: 🚀 The feature and motivation
33
+ description: >
34
+ Provide a clear and concise summary of the proposed feature, including the motivation behind it.
35
+ If your request addresses a specific problem, describe it (e.g., "I'm working on X and need Y to be achievable").
36
+ If this is connected to an existing GitHub issue, please include a link.
37
+ placeholder: |
38
+ **Feature description**
39
+ As user I want to be able to do X with download-manager so that I can achieve Y.
40
+
41
+ **Motivation**
42
+ This feature would be useful for Z because...
43
+
44
+ validations:
45
+ required: true
46
+
47
+ #-------------- Additional context --------------
48
+ - type: textarea
49
+ attributes:
50
+ label: Additional context
51
+ description: >
52
+ Add any other context or screenshots about the feature request.
53
+
54
+ #-------------- Code of Conduct --------------
55
+ - type: checkboxes
56
+ id: terms
57
+ attributes:
58
+ label: Code of Conduct
59
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/saezlab/download-manager/blob/main/CODE_OF_CONDUCT.md).
60
+ options:
61
+ - label: I agree to follow this project's Code of Conduct
62
+ required: true
63
+
64
+ - type: markdown
65
+ attributes:
66
+ value: >
67
+ Thank you for your contribution! 🎉 – Saezlab Team
@@ -0,0 +1,6 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: 👥 download-manager GitHub Discussions
4
+ url: https://github.com/saezlab/download-manager/discussions
5
+ about: Please ask questions and participate in our long-term discussions here.
6
+
@@ -0,0 +1,39 @@
1
+ ## Summary
2
+
3
+ Describe the change in 1-3 concise points.
4
+
5
+ ## Related Issues
6
+
7
+ - Closes #
8
+ - Related to #
9
+
10
+ ## Type of Change
11
+
12
+ - [ ] Bug fix
13
+ - [ ] New feature
14
+ - [ ] Documentation update
15
+ - [ ] Refactor / maintenance
16
+
17
+ ## What Changed
18
+
19
+ -
20
+
21
+ ## Validation
22
+
23
+ - [ ] `poetry run pytest`
24
+ - [ ] `poetry run flake8 download_manager`
25
+ - [ ] Added/updated tests (if needed)
26
+ - [ ] Added/updated documentation (if needed)
27
+
28
+ ## Breaking Changes
29
+
30
+ - [ ] No breaking changes
31
+ - [ ] Breaking changes (describe below)
32
+
33
+ If there are breaking changes, describe migration steps:
34
+
35
+ ## Checklist
36
+
37
+ - [ ] PR title is clear and descriptive
38
+ - [ ] Scope is focused and minimal
39
+ - [ ] No unrelated changes included
@@ -0,0 +1,23 @@
1
+ name: Package build
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ package:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Python 3.10
15
+ uses: actions/setup-python@v2
16
+ with:
17
+ python-version: '3.10'
18
+ - name: Install build dependencies
19
+ run: python -m pip install --upgrade pip wheel twine build
20
+ - name: Build package
21
+ run: python -m build
22
+ - name: Check package
23
+ run: twine check --strict dist/*.whl
@@ -0,0 +1,95 @@
1
+ name: ci
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ types: [ opened, synchronize, reopened ]
8
+
9
+ jobs:
10
+ build:
11
+
12
+ runs-on: ${{ matrix.os }}
13
+ defaults:
14
+ run:
15
+ shell: bash -e {0}
16
+
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ python: ['3.10', '3.11', '3.12', '3.13', '3.14']
21
+ os: [ubuntu-latest, macos-latest]
22
+
23
+ env:
24
+ OS: ${{ matrix.os }}
25
+ PYTHON: ${{ matrix.python }}
26
+ MODULE: download_manager
27
+
28
+ steps:
29
+ - name: Check out main
30
+ uses: actions/checkout@v4
31
+ - name: Setup Python ${{ matrix.python }}
32
+ uses: actions/setup-python@v5
33
+ with:
34
+ python-version: ${{ matrix.python }}
35
+ - name: System dependencies Linux
36
+ if: ${{ matrix.os == 'ubuntu-latest' }}
37
+ run: |
38
+ sudo apt-get update
39
+ sudo apt-get install -y libcurl4-openssl-dev
40
+ - name: System dependencies OSX
41
+ if: ${{ matrix.os == 'macos-latest' }}
42
+ run: |
43
+ brew install curl openssl
44
+ CURL_PREFIX="$(brew --prefix curl)"
45
+ SSL_PREFIX="$(brew --prefix openssl@3)"
46
+ {
47
+ echo "LDFLAGS=-L${SSL_PREFIX}/lib -L${CURL_PREFIX}/lib"
48
+ echo "CPPFLAGS=-I${SSL_PREFIX}/include -I${CURL_PREFIX}/include"
49
+ echo "PKG_CONFIG_PATH=${SSL_PREFIX}/lib/pkgconfig:${CURL_PREFIX}/lib/pkgconfig"
50
+ echo "PYCURL_SSL_LIBRARY=openssl"
51
+ echo "PYCURL_CURL_CONFIG=${CURL_PREFIX}/bin/curl-config"
52
+ echo "DYLD_LIBRARY_PATH=${CURL_PREFIX}/lib:${SSL_PREFIX}/lib"
53
+ echo "PIP_NO_BINARY=pycurl"
54
+ } >> "$GITHUB_ENV"
55
+ - name: Install Poetry
56
+ uses: snok/install-poetry@v1
57
+ with:
58
+ version: 1.8.4
59
+ virtualenvs-create: true
60
+ virtualenvs-in-project: true
61
+ installer-parallel: true
62
+ - name: Load cached venv
63
+ id: cached-poetry-dependencies
64
+ uses: actions/cache@v4
65
+ with:
66
+ path: .venv
67
+ key: venv-${{ runner.os }}-${{ matrix.python }}-${{ hashFiles('**/poetry.lock') }}-v2
68
+ - name: Install dependencies
69
+ if: ${{ steps.cached-poetry-dependencies.outputs.cache-hit != 'true' }}
70
+ run: poetry install --no-interaction --no-root
71
+ - name: Install library
72
+ run: poetry install --no-interaction
73
+ - name: Rebuild pycurl from source on macOS
74
+ if: ${{ matrix.os == 'macos-latest' }}
75
+ run: "poetry run pip install --no-cache-dir --no-binary :all: --force-reinstall pycurl"
76
+ - name: Lint with flake8
77
+ run: |
78
+ # stop the build if there are Python syntax errors or undefined names
79
+ poetry run flake8 $MODULE --count --select=E9,F63,F7,F82 --show-source --statistics
80
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
81
+ poetry run flake8 $MODULE --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
82
+ - name: Tests and test coverage
83
+ if: ${{ github.event_name == 'push' }}
84
+ run: |
85
+ poetry run pytest -v --cov --color=yes --durations=0 --disable-warnings
86
+ - name: Tests
87
+ if: ${{ github.event_name == 'pull_request' }}
88
+ run: |
89
+ poetry run pytest -v --color=yes --durations=0 --disable-warnings
90
+ - name: Upload coverage reports to Codecov
91
+ if: ${{ github.event_name == 'push' }}
92
+ env:
93
+ CODECOV_NAME: ${{ matrix.python }}-${{ matrix.os }}
94
+ run: |
95
+ poetry run codecovcli --verbose upload-process -t ${{ secrets.CODECOV_TOKEN }} -n 'std'-${{ github.run_id }}
@@ -0,0 +1,23 @@
1
+ *~
2
+ __pycache__/
3
+ /build/
4
+ /docs/_build/
5
+ /docs/generated/
6
+ .DS_Store
7
+ /.vscode/
8
+ /*.egg-info/
9
+ *.egg
10
+ *.prof
11
+ *.coverage
12
+ *.pickle
13
+ /out/
14
+ *.log
15
+ /dist/
16
+ *.pye
17
+ *.pyc
18
+ *.kate-swp
19
+ /.tox/
20
+ /.idea/
21
+ /.pytest_cache/
22
+ /.cache/
23
+ /data/
@@ -0,0 +1,110 @@
1
+ # See https://pre-commit.com for more information
2
+ # See https://pre-commit.com/hooks.html for more hooks
3
+ fail_fast: false
4
+ default_language_version:
5
+ python: python3
6
+ default_stages:
7
+ - commit
8
+ - push
9
+ minimum_pre_commit_version: 2.7.1
10
+ repos:
11
+ - repo: https://github.com/deeenes/unexport
12
+ rev: 0.4.0-patch0-3
13
+ hooks:
14
+ - id: unexport
15
+ args: [--refactor, --single_quotes]
16
+ exclude: __init__.py$
17
+ - repo: https://github.com/google/yapf
18
+ rev: v0.40.2
19
+ hooks:
20
+ - id: yapf
21
+ additional_dependencies: [toml]
22
+ stages: [manual]
23
+ - repo: https://github.com/psf/black
24
+ rev: 24.8.0
25
+ hooks:
26
+ - id: black
27
+ additional_dependencies: [toml]
28
+ stages: [manual]
29
+ - repo: https://github.com/Instagram/Fixit
30
+ rev: 9d59f968e84bd2773f34b0069eeeaad3ce783254
31
+ hooks:
32
+ - id: fixit-run-rules
33
+ stages: [manual]
34
+ - repo: https://github.com/timothycrosley/isort
35
+ rev: 5.13.2
36
+ hooks:
37
+ - id: isort
38
+ additional_dependencies: [toml]
39
+ - repo: https://github.com/snok/pep585-upgrade
40
+ rev: v1.0
41
+ hooks:
42
+ - id: upgrade-type-hints
43
+ args: [--futures=true]
44
+ - repo: https://github.com/asottile/add-trailing-comma
45
+ rev: v3.1.0
46
+ hooks:
47
+ - id: add-trailing-comma
48
+ - repo: https://github.com/myint/unify
49
+ rev: v0.5
50
+ hooks:
51
+ - id: unify
52
+ - repo: https://github.com/pre-commit/pre-commit-hooks
53
+ rev: v4.6.0
54
+ hooks:
55
+ - id: detect-private-key
56
+ - id: check-ast
57
+ - id: check-docstring-first
58
+ - id: end-of-file-fixer
59
+ - id: check-added-large-files
60
+ - id: mixed-line-ending
61
+ args: [--fix=lf]
62
+ exclude: ^docs/make.bat$
63
+ - id: trailing-whitespace
64
+ exclude: ^.bumpversion.cfg$
65
+ - id: check-merge-conflict
66
+ - id: check-case-conflict
67
+ - id: check-symlinks
68
+ - id: check-yaml
69
+ args: [--unsafe]
70
+ - id: check-ast
71
+ - id: fix-encoding-pragma
72
+ args: [--remove] # for Python3 codebase, it's not necessary
73
+ - id: requirements-txt-fixer
74
+ - repo: https://github.com/john-hen/Flake8-pyproject
75
+ rev: 1.2.3
76
+ hooks:
77
+ - id: Flake8-pyproject
78
+ additional_dependencies:
79
+ - flake8-docstrings
80
+ - flake8-comprehensions
81
+ - flake8-bugbear
82
+ - git+https://github.com/saezlab/flake8-kwargs-spaces.git
83
+ - repo: https://github.com/rstcheck/rstcheck
84
+ rev: v6.2.4
85
+ hooks:
86
+ - id: rstcheck
87
+ exclude: docs
88
+ - repo: https://github.com/asottile/blacken-docs
89
+ rev: 1.18.0
90
+ hooks:
91
+ - id: blacken-docs
92
+ - repo: https://github.com/asottile/pyupgrade
93
+ rev: v3.17.0
94
+ hooks:
95
+ - id: pyupgrade
96
+ args: [--py3-plus, --py38-plus, --keep-runtime-typing]
97
+ - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
98
+ rev: v2.14.0
99
+ hooks:
100
+ - id: pretty-format-yaml
101
+ args: [--autofix, --indent, '4']
102
+ - repo: https://github.com/pre-commit/pygrep-hooks
103
+ rev: v1.10.0
104
+ hooks:
105
+ - id: python-no-eval
106
+ - id: python-use-type-annotations
107
+ - id: python-check-blanket-noqa
108
+ - id: rst-backticks
109
+ - id: rst-directive-colons
110
+ - id: rst-inline-touching-normal
@@ -0,0 +1,22 @@
1
+ version: 2
2
+
3
+ sphinx:
4
+ builder: html
5
+ configuration: docs/source/conf.py
6
+ fail_on_warning: true
7
+
8
+ formats:
9
+ - htmlzip
10
+ - pdf
11
+
12
+ build:
13
+ os: ubuntu-22.04
14
+ tools:
15
+ python: 3.10
16
+
17
+ python:
18
+ install:
19
+ - method: pip
20
+ path: .
21
+ extra_requirements:
22
+ - docs