fabrictestbed_extensions 1.9.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.
- fabrictestbed_extensions-1.9.0/.github/workflows/build.yml +49 -0
- fabrictestbed_extensions-1.9.0/.github/workflows/check_docstring_coverage.yml +42 -0
- fabrictestbed_extensions-1.9.0/.github/workflows/check_format.yml +50 -0
- fabrictestbed_extensions-1.9.0/.github/workflows/check_signed_commits.yml +32 -0
- fabrictestbed_extensions-1.9.0/.github/workflows/publish.yml +68 -0
- fabrictestbed_extensions-1.9.0/.github/workflows/test.yml +85 -0
- fabrictestbed_extensions-1.9.0/.gitignore +133 -0
- fabrictestbed_extensions-1.9.0/.readthedocs.yaml +25 -0
- fabrictestbed_extensions-1.9.0/CHANGELOG.md +323 -0
- fabrictestbed_extensions-1.9.0/CONTRIBUTING.md +170 -0
- fabrictestbed_extensions-1.9.0/LICENSE +21 -0
- fabrictestbed_extensions-1.9.0/PKG-INFO +134 -0
- fabrictestbed_extensions-1.9.0/README.md +93 -0
- fabrictestbed_extensions-1.9.0/docs/Makefile +20 -0
- fabrictestbed_extensions-1.9.0/docs/make.bat +35 -0
- fabrictestbed_extensions-1.9.0/docs/source/_static/.empty +0 -0
- fabrictestbed_extensions-1.9.0/docs/source/artifact.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/artifact_manager_ui.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/component.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/conf.py +68 -0
- fabrictestbed_extensions-1.9.0/docs/source/fablib.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/facility_port.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/index.rst +148 -0
- fabrictestbed_extensions-1.9.0/docs/source/interface.rst +9 -0
- fabrictestbed_extensions-1.9.0/docs/source/network_service.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/node.rst +10 -0
- fabrictestbed_extensions-1.9.0/docs/source/resources.rst +20 -0
- fabrictestbed_extensions-1.9.0/docs/source/site.rst +17 -0
- fabrictestbed_extensions-1.9.0/docs/source/slice.rst +9 -0
- fabrictestbed_extensions-1.9.0/docs/source/switch.rst +10 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/__init__.py +28 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/editors/__init__.py +1 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/editors/abc_topology_editor.py +523 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/editors/cytoscape_topology_editor.py +187 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/editors/geo_topology_editor.py +1909 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/__init__.py +0 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/artifact.py +107 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/attestable_switch.py +812 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/component.py +768 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/config/__init__.py +0 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/config/config.py +925 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/config/fabric_rc +23 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/config/fabric_rc.yml +46 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/constants.py +270 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/fablib.py +3250 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/facility_port.py +302 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/interface.py +1433 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/network_service.py +1567 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/node.py +3887 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/resources.py +1124 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/site.py +1238 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/slice.py +3324 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/fablib/switch.py +397 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/images/__init__.py +1 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/images/fabric_logo.png +0 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/images/server.png +0 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/images/slice_rack.png +0 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/ui/__init__.py +0 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/ui/artifact_manager_ui.py +275 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/utils/__init__.py +1 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/utils/abc_utils.py +84 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/utils/node.py +89 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/utils/slice.py +234 -0
- fabrictestbed_extensions-1.9.0/fabrictestbed_extensions/utils/utils.py +89 -0
- fabrictestbed_extensions-1.9.0/pyproject.toml +89 -0
- fabrictestbed_extensions-1.9.0/tests/benchmarks/gpu_tesla_t4_benchmark.py +325 -0
- fabrictestbed_extensions-1.9.0/tests/benchmarks/link_benchmark.py +518 -0
- fabrictestbed_extensions-1.9.0/tests/benchmarks/local_network_benchmark.py +527 -0
- fabrictestbed_extensions-1.9.0/tests/benchmarks/network_benchmark_tests.py +1204 -0
- fabrictestbed_extensions-1.9.0/tests/benchmarks/nvme_benchmark.py +266 -0
- fabrictestbed_extensions-1.9.0/tests/integration/abc_test.py +375 -0
- fabrictestbed_extensions-1.9.0/tests/integration/component_tests.py +833 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_L2_reconfig_post_reboot.py +149 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_bastion_ssh.py +53 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_fablib_node.py +65 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_fabnetv4_ext.py +141 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_hello_fabric.py +70 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_list_resources.py +47 -0
- fabrictestbed_extensions-1.9.0/tests/integration/test_modify.py +177 -0
- fabrictestbed_extensions-1.9.0/tests/unit/__init__.py +1 -0
- fabrictestbed_extensions-1.9.0/tests/unit/data/dummy-token.json +5 -0
- fabrictestbed_extensions-1.9.0/tests/unit/data/dummy_fabric_rc +0 -0
- fabrictestbed_extensions-1.9.0/tests/unit/test_basic.py +228 -0
- fabrictestbed_extensions-1.9.0/tox.ini +43 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Build the package
|
|
2
|
+
|
|
3
|
+
name: Build
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- "main"
|
|
9
|
+
pull_request:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
|
|
17
|
+
build:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- name: Check out sources
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: "3.9"
|
|
27
|
+
cache: 'pip' # cache pip dependencies
|
|
28
|
+
cache-dependency-path: pyproject.toml
|
|
29
|
+
|
|
30
|
+
- name: Install dependencies
|
|
31
|
+
run: |
|
|
32
|
+
python -m pip install --upgrade pip
|
|
33
|
+
python -m pip install flit
|
|
34
|
+
|
|
35
|
+
- name: Build the package
|
|
36
|
+
run: |
|
|
37
|
+
python -m flit build
|
|
38
|
+
|
|
39
|
+
- name: Try installing the package
|
|
40
|
+
run: |
|
|
41
|
+
python -m pip install dist/fabrictestbed_extensions-*.whl
|
|
42
|
+
|
|
43
|
+
# See https://github.com/actions/upload-artifact
|
|
44
|
+
- name: Upload build artifacts
|
|
45
|
+
uses: actions/upload-artifact@v4
|
|
46
|
+
with:
|
|
47
|
+
name: packages
|
|
48
|
+
path: dist/
|
|
49
|
+
if-no-files-found: error
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# A check to ensure that our docstring coverage remains pretty good.
|
|
2
|
+
#
|
|
3
|
+
# We use interrogate (https://interrogate.readthedocs.io/) to check
|
|
4
|
+
# docstring coverage. Settings are under `[tool.interrogate]` section
|
|
5
|
+
# of the pyproject.toml file in the top-level directory.
|
|
6
|
+
|
|
7
|
+
name: Check docstring coverage
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- "main"
|
|
13
|
+
pull_request:
|
|
14
|
+
workflow_dispatch:
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
|
|
21
|
+
checks:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Check out sources
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
|
|
28
|
+
- name: Set up Python
|
|
29
|
+
uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.x"
|
|
32
|
+
cache: 'pip' # cache pip dependencies
|
|
33
|
+
cache-dependency-path: pyproject.toml
|
|
34
|
+
|
|
35
|
+
- name: Install interrogate
|
|
36
|
+
run: |
|
|
37
|
+
python -m pip install --upgrade pip
|
|
38
|
+
python -m pip install interrogate==1.7.0
|
|
39
|
+
|
|
40
|
+
- name: Check docstring coverage with interrogate
|
|
41
|
+
run: |
|
|
42
|
+
python -m interrogate -vv fabrictestbed_extensions
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Run some code checks with GitHub Actions.
|
|
2
|
+
|
|
3
|
+
name: Code formatting checks
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- "main"
|
|
9
|
+
pull_request:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
|
|
14
|
+
checks:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: Check out sources
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 0 # since we need to diff against origin/main.
|
|
21
|
+
|
|
22
|
+
- name: Set up Python
|
|
23
|
+
uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: "3.x"
|
|
26
|
+
cache: 'pip' # cache pip dependencies
|
|
27
|
+
cache-dependency-path: pyproject.toml
|
|
28
|
+
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: |
|
|
31
|
+
python -m pip install --upgrade pip
|
|
32
|
+
python -m pip install black==24.* isort==5.*
|
|
33
|
+
|
|
34
|
+
- name: Run "black --check"
|
|
35
|
+
run: |
|
|
36
|
+
python -m black --check .
|
|
37
|
+
|
|
38
|
+
- name: Run "isort --check"
|
|
39
|
+
run: |
|
|
40
|
+
python -m isort --profile black --check .
|
|
41
|
+
|
|
42
|
+
# Remind PR authors to update CHANGELOG.md
|
|
43
|
+
- name: Check that Changelog has been updated
|
|
44
|
+
if: github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no changelog')
|
|
45
|
+
run: |
|
|
46
|
+
# `git diff --exit-code` exits with 1 if there were
|
|
47
|
+
# differences and 0 means no differences. Here we negate
|
|
48
|
+
# that, because we want to fail if changelog has not been
|
|
49
|
+
# updated.
|
|
50
|
+
! git diff --exit-code "origin/${GITHUB_BASE_REF}" -- CHANGELOG.md
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# FABRIC policy requires that code commits are signed with the
|
|
2
|
+
# committer's GPG key.
|
|
3
|
+
#
|
|
4
|
+
# https://github.com/marketplace/actions/check-signed-commits-in-pr
|
|
5
|
+
# runs on pull_request_target events.
|
|
6
|
+
|
|
7
|
+
name: Check signed commits in PR
|
|
8
|
+
on: pull_request_target
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
check-signed-commits:
|
|
12
|
+
name: Check signed commits in PR
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
# Allow 1Password/check-signed-commits-action to leave comments
|
|
18
|
+
# on pull requests.
|
|
19
|
+
pull-requests: write
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Check signed commits in PR
|
|
23
|
+
uses: 1Password/check-signed-commits-action@v1
|
|
24
|
+
with:
|
|
25
|
+
comment: |
|
|
26
|
+
⚠️ This PR contains unsigned commits. To get your PR merged, please sign those commits (`git rebase --exec 'git commit -S --amend --no-edit -n' @{upstream}`) and force push them to this branch (`git push --force-with-lease`).
|
|
27
|
+
|
|
28
|
+
If you're new to commit signing, follow the steps below to set up commit signing with `gpg`:
|
|
29
|
+
|
|
30
|
+
1. [Generate a GPG key](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)
|
|
31
|
+
2. [Add the GPG key to your GitHub account](https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)
|
|
32
|
+
3. [Configure `git` to use your GPG key for commit signing](https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key#telling-git-about-your-gpg-key)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Publish the package on PyPI.
|
|
2
|
+
#
|
|
3
|
+
# https://pypi.org/project/fabrictestbed-extensions/ is configured
|
|
4
|
+
# with GitHub as "trusted publisher", meaning, there is no exchange of
|
|
5
|
+
# a long-term password or token between GitHub and PyPI. See
|
|
6
|
+
# documentation here: https://docs.pypi.org/trusted-publishers/
|
|
7
|
+
|
|
8
|
+
name: Publish
|
|
9
|
+
|
|
10
|
+
# This workflow will be triggered when a tag with prefix "rel" is
|
|
11
|
+
# pushed to the repository.
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
tags:
|
|
15
|
+
- "rel*"
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
tests:
|
|
19
|
+
uses: ./.github/workflows/test.yml
|
|
20
|
+
|
|
21
|
+
pypi-publish:
|
|
22
|
+
name: Publish packages on PyPI
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
needs:
|
|
25
|
+
- tests
|
|
26
|
+
|
|
27
|
+
environment:
|
|
28
|
+
name: publish
|
|
29
|
+
url: https://pypi.org/p/fabrictestbed-extensions
|
|
30
|
+
|
|
31
|
+
# See https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
|
|
32
|
+
permissions:
|
|
33
|
+
# This permission is mandatory for trusted publishing.
|
|
34
|
+
id-token: write
|
|
35
|
+
# This permission allows the action to create a release.
|
|
36
|
+
contents: write
|
|
37
|
+
|
|
38
|
+
steps:
|
|
39
|
+
- name: Check out sources
|
|
40
|
+
uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
- name: Set up Python
|
|
43
|
+
uses: actions/setup-python@v5
|
|
44
|
+
with:
|
|
45
|
+
python-version: "3.9"
|
|
46
|
+
cache: 'pip'
|
|
47
|
+
cache-dependency-path: pyproject.toml
|
|
48
|
+
|
|
49
|
+
- name: Build package
|
|
50
|
+
run: |
|
|
51
|
+
python -m pip install --upgrade pip
|
|
52
|
+
python -m pip install flit
|
|
53
|
+
python -m flit build
|
|
54
|
+
|
|
55
|
+
# See https://github.com/marketplace/actions/pypi-publish.
|
|
56
|
+
- name: Publish package distributions to PyPI
|
|
57
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
58
|
+
|
|
59
|
+
# GitHub CLI (aka "gh" command) is pre-installed in hosted runners.
|
|
60
|
+
# See https://docs.github.com/en/actions/using-workflows/using-github-cli-in-workflows
|
|
61
|
+
- name: Create a GitHub release
|
|
62
|
+
run: |
|
|
63
|
+
RELEASE_TAG=$GITHUB_REF_NAME
|
|
64
|
+
RELEASE_TITLE="Release $(echo "$RELEASE_TAG" | sed 's/^rel//g')"
|
|
65
|
+
echo "RELEASE_TAG=${RELEASE_TAG}, RELEASE_TITLE=${RELEASE_TITLE}"
|
|
66
|
+
gh release create ${RELEASE_TAG} --title="${RELEASE_TITLE}" --generate-notes
|
|
67
|
+
env:
|
|
68
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint
|
|
2
|
+
# with a variety of Python versions For more information see:
|
|
3
|
+
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
4
|
+
|
|
5
|
+
name: Test
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches:
|
|
10
|
+
- "main"
|
|
11
|
+
pull_request:
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
workflow_call:
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
test:
|
|
17
|
+
|
|
18
|
+
strategy:
|
|
19
|
+
fail-fast: false
|
|
20
|
+
matrix:
|
|
21
|
+
python-version:
|
|
22
|
+
- "3.9"
|
|
23
|
+
- "3.10"
|
|
24
|
+
- "3.11"
|
|
25
|
+
os:
|
|
26
|
+
# See https://github.com/actions/runner-images for available
|
|
27
|
+
# runners.
|
|
28
|
+
- "ubuntu-22.04"
|
|
29
|
+
- "windows-2022"
|
|
30
|
+
- "macos-13" # Intel
|
|
31
|
+
- "macos-14" # ARM
|
|
32
|
+
|
|
33
|
+
runs-on: ${{ matrix.os }}
|
|
34
|
+
|
|
35
|
+
steps:
|
|
36
|
+
- name: Check out sources
|
|
37
|
+
uses: actions/checkout@v4
|
|
38
|
+
|
|
39
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
40
|
+
uses: actions/setup-python@v5
|
|
41
|
+
with:
|
|
42
|
+
python-version: ${{ matrix.python-version }}
|
|
43
|
+
cache: 'pip' # caching pip dependencies
|
|
44
|
+
cache-dependency-path: pyproject.toml
|
|
45
|
+
|
|
46
|
+
- name: Install dependencies
|
|
47
|
+
run: |
|
|
48
|
+
python -m pip install --upgrade pip
|
|
49
|
+
python -m pip install wheel
|
|
50
|
+
|
|
51
|
+
# # TODO: we can't use flake8 right now, because there isn't a
|
|
52
|
+
# # version of flake8 that can use pycodestyle==2.6.0, and fim has
|
|
53
|
+
# # pinned pycodestyle==2.6.0.
|
|
54
|
+
# - name: Lint with flake8
|
|
55
|
+
# run: |
|
|
56
|
+
# # stop the build if there are Python syntax errors or undefined names
|
|
57
|
+
# python -m flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
|
58
|
+
# # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
|
59
|
+
# python -m flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
|
60
|
+
|
|
61
|
+
- name: Install and test with pytest
|
|
62
|
+
run: |
|
|
63
|
+
python -m pip install .[test]
|
|
64
|
+
python -m coverage run -m pytest
|
|
65
|
+
python -m coverage report
|
|
66
|
+
# Generate LCOV format coverage data for coveralls.
|
|
67
|
+
python -m coverage lcov -o coverage.lcov
|
|
68
|
+
|
|
69
|
+
- name: Send coverage data to coveralls.io
|
|
70
|
+
uses: coverallsapp/github-action@v2
|
|
71
|
+
with:
|
|
72
|
+
flag-name: run-${{ join(matrix.*, '-') }}
|
|
73
|
+
file: coverage.lcov
|
|
74
|
+
parallel: true
|
|
75
|
+
|
|
76
|
+
finalize:
|
|
77
|
+
name: finalize
|
|
78
|
+
needs: test
|
|
79
|
+
runs-on: ubuntu-latest
|
|
80
|
+
if: ${{ always() }}
|
|
81
|
+
steps:
|
|
82
|
+
- name: Indicate completion to coveralls.io
|
|
83
|
+
uses: coverallsapp/github-action@v2
|
|
84
|
+
with:
|
|
85
|
+
parallel-finished: true
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
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
|
+
target/
|
|
76
|
+
|
|
77
|
+
# Jupyter Notebook
|
|
78
|
+
.ipynb_checkpoints
|
|
79
|
+
|
|
80
|
+
# IPython
|
|
81
|
+
profile_default/
|
|
82
|
+
ipython_config.py
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# pipenv
|
|
88
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
89
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
90
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
91
|
+
# install all needed dependencies.
|
|
92
|
+
#Pipfile.lock
|
|
93
|
+
|
|
94
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
95
|
+
__pypackages__/
|
|
96
|
+
|
|
97
|
+
# Celery stuff
|
|
98
|
+
celerybeat-schedule
|
|
99
|
+
celerybeat.pid
|
|
100
|
+
|
|
101
|
+
# SageMath parsed files
|
|
102
|
+
*.sage.py
|
|
103
|
+
|
|
104
|
+
# Environments
|
|
105
|
+
.env
|
|
106
|
+
.venv*
|
|
107
|
+
env/
|
|
108
|
+
venv*
|
|
109
|
+
ENV/
|
|
110
|
+
env.bak/
|
|
111
|
+
venv.bak/
|
|
112
|
+
|
|
113
|
+
# Spyder project settings
|
|
114
|
+
.spyderproject
|
|
115
|
+
.spyproject
|
|
116
|
+
|
|
117
|
+
# Rope project settings
|
|
118
|
+
.ropeproject
|
|
119
|
+
|
|
120
|
+
# mkdocs documentation
|
|
121
|
+
/site
|
|
122
|
+
|
|
123
|
+
# mypy
|
|
124
|
+
.mypy_cache/
|
|
125
|
+
.dmypy.json
|
|
126
|
+
dmypy.json
|
|
127
|
+
|
|
128
|
+
# Pyre type checker
|
|
129
|
+
.pyre/
|
|
130
|
+
.idea/
|
|
131
|
+
|
|
132
|
+
# Created by tox.
|
|
133
|
+
/_trial_temp/
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Configuration for readthedocs.org.
|
|
2
|
+
# See https://docs.readthedocs.io/en/latest/config-file/v2.html
|
|
3
|
+
|
|
4
|
+
version: 2
|
|
5
|
+
|
|
6
|
+
# readthedocs.org uses Python 3.7 by default; fablib has to use Python
|
|
7
|
+
# 3.9 or greater. This incantation seems to work.
|
|
8
|
+
build:
|
|
9
|
+
os: ubuntu-20.04
|
|
10
|
+
tools:
|
|
11
|
+
python: "3.9"
|
|
12
|
+
|
|
13
|
+
# Tell RTD location of our Sphinx configuration. Seems to work
|
|
14
|
+
# without this too, although default is docs/conf.py.
|
|
15
|
+
sphinx:
|
|
16
|
+
configuration: docs/source/conf.py
|
|
17
|
+
|
|
18
|
+
# To be able to build API documentation, we need to install both docs
|
|
19
|
+
# requirements and package requirements, it seems.
|
|
20
|
+
python:
|
|
21
|
+
install:
|
|
22
|
+
- method: pip
|
|
23
|
+
path: .
|
|
24
|
+
extra_requirements:
|
|
25
|
+
- doc
|