datatrail-cli 0.9.2__tar.gz → 0.10.0__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 (46) hide show
  1. datatrail_cli-0.10.0/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
  2. datatrail_cli-0.10.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  3. datatrail_cli-0.10.0/.github/PULL_REQUEST_TEMPLATE.md +27 -0
  4. datatrail_cli-0.10.0/.github/workflows/continuous-deployment.yml +48 -0
  5. datatrail_cli-0.10.0/.github/workflows/continuous-integration.yml +104 -0
  6. datatrail_cli-0.10.0/.github/workflows/docs.yml +20 -0
  7. datatrail_cli-0.10.0/.github/workflows/stale.yml +21 -0
  8. datatrail_cli-0.10.0/.gitignore +163 -0
  9. datatrail_cli-0.10.0/.pre-commit-config.yaml +96 -0
  10. datatrail_cli-0.10.0/CHANGELOG.md +314 -0
  11. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/PKG-INFO +17 -23
  12. datatrail_cli-0.10.0/docs/clear.md +117 -0
  13. datatrail_cli-0.10.0/docs/cli.md +10 -0
  14. datatrail_cli-0.10.0/docs/commands.md +24 -0
  15. datatrail_cli-0.10.0/docs/images/Datatrail-logo.png +0 -0
  16. datatrail_cli-0.10.0/docs/index.md +48 -0
  17. datatrail_cli-0.10.0/docs/initialising.md +173 -0
  18. datatrail_cli-0.10.0/docs/install.md +40 -0
  19. datatrail_cli-0.10.0/docs/list.md +102 -0
  20. datatrail_cli-0.10.0/docs/ps.md +82 -0
  21. datatrail_cli-0.10.0/docs/pull.md +135 -0
  22. datatrail_cli-0.10.0/docs/scout.md +110 -0
  23. datatrail_cli-0.10.0/docs/user_guide.md +33 -0
  24. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/cli.py +2 -1
  25. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/ls.py +5 -0
  26. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/pull.py +11 -1
  27. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/src/functions.py +78 -0
  28. datatrail_cli-0.10.0/dtcli/unregistered.py +61 -0
  29. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/utilities/cadcclient.py +66 -44
  30. datatrail_cli-0.10.0/mkdocs.yml +19 -0
  31. datatrail_cli-0.10.0/poetry.lock +3256 -0
  32. datatrail_cli-0.10.0/pyproject.toml +73 -0
  33. datatrail_cli-0.10.0/tests/test_cli.py +582 -0
  34. datatrail_cli-0.10.0/tests/test_functions.py +54 -0
  35. datatrail_cli-0.10.0/tests/test_utils.py +8 -0
  36. datatrail_cli-0.10.0/tox.ini +13 -0
  37. datatrail_cli-0.9.2/pyproject.toml +0 -58
  38. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/LICENSE +0 -0
  39. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/README.md +0 -0
  40. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/__init__.py +0 -0
  41. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/clear.py +0 -0
  42. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/config.py +0 -0
  43. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/config.yaml +0 -0
  44. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/ps.py +0 -0
  45. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/scout.py +0 -0
  46. {datatrail_cli-0.9.2 → datatrail_cli-0.10.0}/dtcli/utilities/utilities.py +0 -0
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG]"
5
+ labels: bug
6
+ assignees: tjzegmott
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Provide the steps to reproduce the bug.
15
+
16
+ **Expected behavior**
17
+ A clear and concise description of what you expected to happen.
18
+
19
+ **Screenshots**
20
+ If applicable, add screenshots to help explain your problem.
21
+
22
+ **Desktop (please complete the following information):**
23
+
24
+ - OS: [e.g. MacOS]
25
+ - Datatrail Version [e.g. 2.1.1, `datatrail version` output]
26
+
27
+ **Additional context**
28
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: "[FEATURE]"
5
+ labels: enhancement
6
+ assignees: tjzegmott
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,27 @@
1
+ <!--- Provide a general summary of your changes in the Title above -->
2
+
3
+ ## Description
4
+ <!--- Describe your changes in detail -->
5
+
6
+ ## Related Issue
7
+ <!--- This project only accepts pull requests related to open issues -->
8
+ <!--- If suggesting a new feature or change, please discuss it in an issue first -->
9
+ <!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
10
+ <!--- Please link to the issue here: -->
11
+
12
+ ## Screenshots (if appropriate):
13
+
14
+ ## Types of changes
15
+ <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
16
+ - [ ] Bug fix (non-breaking change which fixes an issue)
17
+ - [ ] New feature (non-breaking change which adds functionality)
18
+ - [ ] Breaking change (fix or feature that would cause existing functionality to change)
19
+
20
+ ## Checklist:
21
+ <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
22
+ <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
23
+ - [ ] My code follows the code style of this project.
24
+ - [ ] My change requires a change to the documentation.
25
+ - [ ] I have updated the documentation accordingly.
26
+ - [ ] I have added tests to cover my changes.
27
+ - [ ] All new and existing tests passed.
@@ -0,0 +1,48 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - main
5
+ name: Continuous Deployment
6
+ jobs:
7
+ release-please:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - name: Create release
11
+ id: release-please
12
+ uses: google-github-actions/release-please-action@v3
13
+ with:
14
+ release-type: python
15
+ package-name: datatrail-cli
16
+
17
+ - name: Checkout code
18
+ if: ${{ steps.release-please.outputs.release_created }}
19
+ uses: actions/checkout@v6
20
+ with:
21
+ fetch-depth: 1
22
+
23
+ - name: Set up Python 3.13
24
+ if: ${{ steps.release-please.outputs.release_created }}
25
+ uses: actions/setup-python@v6
26
+ with:
27
+ python-version: 3.13
28
+
29
+ - name: Install poetry
30
+ if: ${{ steps.release-please.outputs.release_created }}
31
+ run: |
32
+ pip install --upgrade pip
33
+ pip install --upgrade poetry
34
+ poetry config virtualenvs.create true
35
+ poetry config virtualenvs.in-project false
36
+
37
+ - name: Install datatrail-cli
38
+ if: ${{ steps.release-please.outputs.release_created }}
39
+ run: |
40
+ poetry install
41
+
42
+ - name: Publish to pypi
43
+ if: ${{ steps.release-please.outputs.release_created }}
44
+ env:
45
+ PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
46
+ run: |
47
+ poetry config pypi-token.pypi $PYPI_TOKEN
48
+ poetry publish --build --verbose
@@ -0,0 +1,104 @@
1
+ name: Continuous Integration
2
+
3
+ on:
4
+ push:
5
+ paths-ignore:
6
+ - "docs/**"
7
+ branches: [main]
8
+ pull_request:
9
+ paths-ignore:
10
+ - "docs/**"
11
+ branches:
12
+ - "**"
13
+
14
+ jobs:
15
+ Pre-commit-checks:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+
20
+ - name: Set up Python 3.13
21
+ uses: actions/setup-python@v6
22
+ with:
23
+ python-version: 3.13
24
+
25
+ - name: Linting
26
+ run: |
27
+ pip install pre-commit
28
+ pre-commit run --all-files
29
+
30
+ Testing:
31
+ needs: pre-commit-checks
32
+ runs-on: ubuntu-latest
33
+ strategy:
34
+ fail-fast: false
35
+ matrix:
36
+ os: [ubuntu-latest]
37
+ python-version:
38
+ - "3.9"
39
+ - "3.11"
40
+ - "3.12"
41
+ - "3.13"
42
+ - "3.14"
43
+ steps:
44
+ - uses: actions/checkout@v6
45
+
46
+ - name: Set up Python ${{ matrix.python-version }}
47
+ uses: actions/setup-python@v6
48
+ with:
49
+ python-version: ${{ matrix.python-version }}
50
+
51
+ - name: Load cached venv
52
+ id: cached-poetry-dependencies
53
+ uses: actions/cache@v5
54
+ with:
55
+ path: |
56
+ ~/.cache/pypoetry
57
+ key: poetry-${{ runner.os }}-${{ hashFiles('poetry.lock') }}
58
+
59
+ - name: Installation
60
+ run: |
61
+ pip install --upgrade pip
62
+ pip install poetry==2.1.2
63
+ pip install vos
64
+ poetry config virtualenvs.create true
65
+ poetry config virtualenvs.in-project false
66
+ poetry config cache-dir ~/.cache/pypoetry
67
+ poetry config virtualenvs.path ~/.cache/pypoetry/venv
68
+ poetry install --with dev
69
+
70
+ - name: Create NETRC file
71
+ run: |
72
+ export CANFAR_NETRC_FILE=$RUNNER_TEMP"/CANFAR_NETRC"
73
+ echo ${{ secrets.CANFAR_NETRC }} > $CANFAR_NETRC_FILE
74
+ echo CANFAR_NETRC_FILE=$CANFAR_NETRC_FILE >> "$GITHUB_ENV"
75
+
76
+ - name: Obtain CADC certificate
77
+ run: |
78
+ export CADC_CERT=$HOME"/.ssl/cadcproxy.pem"
79
+ cadc-get-cert --netrc-file ${{ env.CANFAR_NETRC_FILE }} --days-valid 1 --cert-filename $CADC_CERT
80
+ echo CADC_CERT=$CADC_CERT >> "$GITHUB_ENV"
81
+
82
+ - name: Run Tests
83
+ run: |
84
+ poetry run pytest tests/ --cov . --cov-report=lcov --cov-report=xml
85
+
86
+ - name: Remove NETRC file and CADC certificate
87
+ run: |
88
+ echo "Removing file: "$CANFAR_NETRC_FILE
89
+ rm $CANFAR_NETRC_FILE
90
+ echo "Removing file: "$CADC_CERT
91
+ rm $CADC_CERT
92
+
93
+ - name: Upload coverage to Coveralls
94
+ uses: coverallsapp/github-action@v2
95
+ with:
96
+ github-token: ${{ secrets.GITHUB_TOKEN }}
97
+ path-to-lcov: "coverage.lcov"
98
+ fail-on-error: false
99
+
100
+ - name: Upload coverage to Codecov
101
+ uses: codecov/codecov-action@v3
102
+ with:
103
+ fail_ci_if_error: false
104
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,20 @@
1
+ name: Documentation
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ paths:
7
+ - "docs/**"
8
+ - ".github/workflows/docs.yml"
9
+
10
+ jobs:
11
+ mkdocs:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Build chimefrb/handbook
15
+ uses: peter-evans/repository-dispatch@v3
16
+ with:
17
+ token: ${{ secrets.BUILD_HANDBOOK_TOKEN }}
18
+ repository: chimefrb/handbook
19
+ event-type: build-handbook
20
+ client-payload: '{"source": "chimefrb/datatrail-cli"}'
@@ -0,0 +1,21 @@
1
+ name: Close Stale Issues and Pull Requests
2
+
3
+ on:
4
+ schedule:
5
+ - cron: "0 0 * * *" # Run every day at midnight
6
+
7
+ jobs:
8
+ close_stale_prs:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Close stale pull requests
12
+ uses: actions/stale@v9
13
+ with:
14
+ days-before-stale: 90
15
+ days-before-close: 7
16
+ close-issue-message: "This pull request has been automatically closed. Please reopen if you feel this issue is still relevant."
17
+ stale-issue-message: "This pull request has been automatically marked as 'Stale' because it has been inactive for more than 90 days. If there is no interaction here, this issue will be closed in seven days."
18
+ stale-issue-label: Stale
19
+ close-pr-message: "This pull request has been automatically closed because it has been inactive for more than 90 days."
20
+ stale-pr-message: "This pull request has been marked as stale because it has been inactive for more than 90 days. Please update this pull request or it will be automatically closed in seven days."
21
+ stale-pr-label: Stale
@@ -0,0 +1,163 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
161
+
162
+ # MacOS
163
+ .DS_Store
@@ -0,0 +1,96 @@
1
+ repos:
2
+ - hooks:
3
+ - args:
4
+ - --multi-line=3
5
+ - --trailing-comma
6
+ - --force-grid-wrap=0
7
+ - --use-parentheses
8
+ - --line-width=88
9
+ id: isort
10
+ repo: https://github.com/pycqa/isort
11
+ rev: 5.13.2
12
+ - hooks:
13
+ - args:
14
+ - --max-line-length=89
15
+ - --max-complexity=15
16
+ id: flake8
17
+ repo: https://github.com/pycqa/flake8
18
+ rev: 7.0.0
19
+ - hooks:
20
+ - args:
21
+ - --py36-plus
22
+ id: pyupgrade
23
+ repo: https://github.com/asottile/pyupgrade
24
+ rev: v3.15.0
25
+ - hooks:
26
+ - id: black
27
+ repo: https://github.com/psf/black
28
+ rev: 23.3.0
29
+ - hooks:
30
+ - additional_dependencies:
31
+ - types-attrs
32
+ - types-requests
33
+ - types-setuptools
34
+ - types-PyYAML
35
+ args:
36
+ - --ignore-missing-imports
37
+ - --no-implicit-optional
38
+ id: mypy
39
+ repo: https://github.com/pre-commit/mirrors-mypy
40
+ rev: v1.8.0
41
+ - hooks:
42
+ - args:
43
+ - --convention=google
44
+ - --add-ignore=D104
45
+ id: pydocstyle
46
+ repo: https://github.com/pycqa/pydocstyle
47
+ rev: 6.3.0
48
+ - hooks:
49
+ - id: blacken-docs
50
+ repo: https://github.com/asottile/blacken-docs
51
+ rev: 1.16.0
52
+ - hooks:
53
+ - exclude: ^docs/*
54
+ id: trailing-whitespace
55
+ - exclude: ^docs/*
56
+ id: end-of-file-fixer
57
+ - id: debug-statements
58
+ - id: check-case-conflict
59
+ - id: check-json
60
+ - args:
61
+ - --unsafe
62
+ id: check-yaml
63
+ - id: mixed-line-ending
64
+ - id: check-toml
65
+ - id: pretty-format-json
66
+ - id: check-docstring-first
67
+ - id: check-symlinks
68
+ - id: detect-private-key
69
+ repo: https://github.com/pre-commit/pre-commit-hooks
70
+ rev: v4.5.0
71
+ - hooks:
72
+ - args:
73
+ - -iii
74
+ - -lll
75
+ id: bandit
76
+ repo: https://github.com/PyCQA/bandit
77
+ rev: 1.7.6
78
+ - hooks:
79
+ - additional_dependencies:
80
+ - radon
81
+ args:
82
+ - cc
83
+ - --min=C
84
+ - --total-average
85
+ entry: radon
86
+ id: radon
87
+ language: python
88
+ name: radon
89
+ verbose: true
90
+ repo: local
91
+ - hooks:
92
+ - id: commitizen
93
+ stages:
94
+ - commit-msg
95
+ repo: https://github.com/commitizen-tools/commitizen
96
+ rev: v3.13.0