PyKubeGrader 0.0.4__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- pykubegrader-0.0.4/.coveragerc +28 -0
- pykubegrader-0.0.4/.github/workflows/main.yml +66 -0
- pykubegrader-0.0.4/.gitignore +54 -0
- pykubegrader-0.0.4/.readthedocs.yml +27 -0
- pykubegrader-0.0.4/AUTHORS.rst +5 -0
- pykubegrader-0.0.4/CHANGELOG.rst +10 -0
- pykubegrader-0.0.4/CONTRIBUTING.rst +353 -0
- pykubegrader-0.0.4/LICENSE.txt +28 -0
- pykubegrader-0.0.4/PKG-INFO +69 -0
- pykubegrader-0.0.4/README.md +3 -0
- pykubegrader-0.0.4/README.rst +49 -0
- pykubegrader-0.0.4/docs/Makefile +29 -0
- pykubegrader-0.0.4/docs/_static/.gitignore +1 -0
- pykubegrader-0.0.4/docs/_static/Drexel_blue_Logo_square_Dark.png +0 -0
- pykubegrader-0.0.4/docs/_static/Drexel_blue_Logo_square_Light.png +0 -0
- pykubegrader-0.0.4/docs/_static/custom.css +171 -0
- pykubegrader-0.0.4/docs/authors.rst +2 -0
- pykubegrader-0.0.4/docs/changelog.rst +2 -0
- pykubegrader-0.0.4/docs/conf.py +304 -0
- pykubegrader-0.0.4/docs/contributing.rst +1 -0
- pykubegrader-0.0.4/docs/index.rst +61 -0
- pykubegrader-0.0.4/docs/license.rst +7 -0
- pykubegrader-0.0.4/docs/readme.rst +2 -0
- pykubegrader-0.0.4/docs/requirements.txt +8 -0
- pykubegrader-0.0.4/pyproject.toml +9 -0
- pykubegrader-0.0.4/setup.cfg +71 -0
- pykubegrader-0.0.4/setup.py +22 -0
- pykubegrader-0.0.4/src/PyKubeGrader.egg-info/PKG-INFO +69 -0
- pykubegrader-0.0.4/src/PyKubeGrader.egg-info/SOURCES.txt +48 -0
- pykubegrader-0.0.4/src/PyKubeGrader.egg-info/dependency_links.txt +1 -0
- pykubegrader-0.0.4/src/PyKubeGrader.egg-info/not-zip-safe +1 -0
- pykubegrader-0.0.4/src/PyKubeGrader.egg-info/requires.txt +8 -0
- pykubegrader-0.0.4/src/PyKubeGrader.egg-info/top_level.txt +1 -0
- pykubegrader-0.0.4/src/pykubegrader/__init__.py +16 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/info_widget.py +108 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/mc_widget.py +72 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/misc.py +29 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/multi_select_base.py +99 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/reading_base.py +168 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/reading_widget.py +84 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/select_base.py +69 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/select_many_widget.py +101 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/telemetry.py +132 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/types_widget.py +77 -0
- pykubegrader-0.0.4/src/pykubegrader/widgets/validate.py +311 -0
- pykubegrader-0.0.4/tests/conftest.py +10 -0
- pykubegrader-0.0.4/tests/import_test.py +2 -0
- pykubegrader-0.0.4/tox.ini +93 -0
- pykubegrader-0.0.4/uv.lock +979 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
# .coveragerc to control coverage.py
|
2
|
+
[run]
|
3
|
+
branch = True
|
4
|
+
source = pykubegrader
|
5
|
+
# omit = bad_file.py
|
6
|
+
|
7
|
+
[paths]
|
8
|
+
source =
|
9
|
+
src/
|
10
|
+
*/site-packages/
|
11
|
+
|
12
|
+
[report]
|
13
|
+
# Regexes for lines to exclude from consideration
|
14
|
+
exclude_lines =
|
15
|
+
# Have to re-enable the standard pragma
|
16
|
+
pragma: no cover
|
17
|
+
|
18
|
+
# Don't complain about missing debug-only code:
|
19
|
+
def __repr__
|
20
|
+
if self\.debug
|
21
|
+
|
22
|
+
# Don't complain if tests don't hit defensive assertion code:
|
23
|
+
raise AssertionError
|
24
|
+
raise NotImplementedError
|
25
|
+
|
26
|
+
# Don't complain if non-runnable code isn't run:
|
27
|
+
if 0:
|
28
|
+
if __name__ == .__main__.:
|
@@ -0,0 +1,66 @@
|
|
1
|
+
name: CI/CD
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
pull_request:
|
8
|
+
branches:
|
9
|
+
- main
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
build:
|
13
|
+
runs-on: self-hosted
|
14
|
+
permissions:
|
15
|
+
contents: write
|
16
|
+
steps:
|
17
|
+
- name: Checkout code
|
18
|
+
uses: actions/checkout@v3
|
19
|
+
|
20
|
+
- name: Set up Python
|
21
|
+
uses: actions/setup-python@v2
|
22
|
+
with:
|
23
|
+
python-version: "3.11"
|
24
|
+
|
25
|
+
- name: Install dependencies
|
26
|
+
run: |
|
27
|
+
python -m pip install --upgrade pip
|
28
|
+
pip install pyscaffold
|
29
|
+
pip install tox
|
30
|
+
|
31
|
+
- name: Bump version and push tag
|
32
|
+
uses: anothrNick/github-tag-action@v1
|
33
|
+
if: |
|
34
|
+
contains(github.event.head_commit.message, '#minor') ||
|
35
|
+
contains(github.event.head_commit.message, '#patch') ||
|
36
|
+
contains(github.event.head_commit.message, '#major')
|
37
|
+
with:
|
38
|
+
github_token: ${{ secrets.GH_TOKEN }}
|
39
|
+
release_branches: main
|
40
|
+
DEFAULT_BUMP: patch
|
41
|
+
env:
|
42
|
+
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
|
43
|
+
|
44
|
+
- name: Build the package
|
45
|
+
run: |
|
46
|
+
tox
|
47
|
+
tox -e docs
|
48
|
+
tox -e build
|
49
|
+
|
50
|
+
- name: Publish to PyPI
|
51
|
+
if: |
|
52
|
+
contains(github.event.head_commit.message, '#patch') ||
|
53
|
+
contains(github.event.head_commit.message, '#minor') ||
|
54
|
+
contains(github.event.head_commit.message, '#major')
|
55
|
+
env:
|
56
|
+
TWINE_USERNAME: __token__
|
57
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
58
|
+
run: |
|
59
|
+
python -m pip install --upgrade twine
|
60
|
+
twine upload dist/*
|
61
|
+
|
62
|
+
- name: Deploy to GitHub Pages
|
63
|
+
uses: peaceiris/actions-gh-pages@v3
|
64
|
+
with:
|
65
|
+
github_token: ${{ secrets.GH_TOKEN }}
|
66
|
+
publish_dir: ./docs/_build/html
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Temporary and binary files
|
2
|
+
*~
|
3
|
+
*.py[cod]
|
4
|
+
*.so
|
5
|
+
*.cfg
|
6
|
+
!.isort.cfg
|
7
|
+
!setup.cfg
|
8
|
+
*.orig
|
9
|
+
*.log
|
10
|
+
*.pot
|
11
|
+
__pycache__/*
|
12
|
+
.cache/*
|
13
|
+
.*.swp
|
14
|
+
*/.ipynb_checkpoints/*
|
15
|
+
.DS_Store
|
16
|
+
|
17
|
+
# Project files
|
18
|
+
.ropeproject
|
19
|
+
.project
|
20
|
+
.pydevproject
|
21
|
+
.settings
|
22
|
+
.idea
|
23
|
+
.vscode
|
24
|
+
tags
|
25
|
+
|
26
|
+
# Package files
|
27
|
+
*.egg
|
28
|
+
*.eggs/
|
29
|
+
.installed.cfg
|
30
|
+
*.egg-info
|
31
|
+
|
32
|
+
# Unittest and coverage
|
33
|
+
htmlcov/*
|
34
|
+
.coverage
|
35
|
+
.coverage.*
|
36
|
+
.tox
|
37
|
+
junit*.xml
|
38
|
+
coverage.xml
|
39
|
+
.pytest_cache/
|
40
|
+
|
41
|
+
# Build and docs folder/files
|
42
|
+
build/*
|
43
|
+
sdist/*
|
44
|
+
dist/*
|
45
|
+
docs/api/*
|
46
|
+
docs/_rst/*
|
47
|
+
docs/_build/*
|
48
|
+
cover/*
|
49
|
+
MANIFEST
|
50
|
+
|
51
|
+
# Per-project virtualenvs
|
52
|
+
.venv*/
|
53
|
+
.conda*/
|
54
|
+
.python-version
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Read the Docs configuration file
|
2
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
3
|
+
|
4
|
+
# Required
|
5
|
+
version: 2
|
6
|
+
|
7
|
+
# Build documentation in the docs/ directory with Sphinx
|
8
|
+
sphinx:
|
9
|
+
configuration: docs/conf.py
|
10
|
+
|
11
|
+
# Build documentation with MkDocs
|
12
|
+
#mkdocs:
|
13
|
+
# configuration: mkdocs.yml
|
14
|
+
|
15
|
+
# Optionally build your docs in additional formats such as PDF
|
16
|
+
formats:
|
17
|
+
- pdf
|
18
|
+
|
19
|
+
build:
|
20
|
+
os: ubuntu-22.04
|
21
|
+
tools:
|
22
|
+
python: "3.11"
|
23
|
+
|
24
|
+
python:
|
25
|
+
install:
|
26
|
+
- requirements: docs/requirements.txt
|
27
|
+
- {path: ., method: pip}
|
@@ -0,0 +1,353 @@
|
|
1
|
+
.. todo:: THIS IS SUPPOSED TO BE AN EXAMPLE. MODIFY IT ACCORDING TO YOUR NEEDS!
|
2
|
+
|
3
|
+
The document assumes you are using a source repository service that promotes a
|
4
|
+
contribution model similar to `GitHub's fork and pull request workflow`_.
|
5
|
+
While this is true for the majority of services (like GitHub, GitLab,
|
6
|
+
BitBucket), it might not be the case for private repositories (e.g., when
|
7
|
+
using Gerrit).
|
8
|
+
|
9
|
+
Also notice that the code examples might refer to GitHub URLs or the text
|
10
|
+
might use GitHub specific terminology (e.g., *Pull Request* instead of *Merge
|
11
|
+
Request*).
|
12
|
+
|
13
|
+
Please make sure to check the document having these assumptions in mind
|
14
|
+
and update things accordingly.
|
15
|
+
|
16
|
+
.. todo:: Provide the correct links/replacements at the bottom of the document.
|
17
|
+
|
18
|
+
.. todo:: You might want to have a look on `PyScaffold's contributor's guide`_,
|
19
|
+
|
20
|
+
especially if your project is open source. The text should be very similar to
|
21
|
+
this template, but there are a few extra contents that you might decide to
|
22
|
+
also include, like mentioning labels of your issue tracker or automated
|
23
|
+
releases.
|
24
|
+
|
25
|
+
|
26
|
+
============
|
27
|
+
Contributing
|
28
|
+
============
|
29
|
+
|
30
|
+
Welcome to ``PyKubeGrader`` contributor's guide.
|
31
|
+
|
32
|
+
This document focuses on getting any potential contributor familiarized
|
33
|
+
with the development processes, but `other kinds of contributions`_ are also
|
34
|
+
appreciated.
|
35
|
+
|
36
|
+
If you are new to using git_ or have never collaborated in a project previously,
|
37
|
+
please have a look at `contribution-guide.org`_. Other resources are also
|
38
|
+
listed in the excellent `guide created by FreeCodeCamp`_ [#contrib1]_.
|
39
|
+
|
40
|
+
Please notice, all users and contributors are expected to be **open,
|
41
|
+
considerate, reasonable, and respectful**. When in doubt, `Python Software
|
42
|
+
Foundation's Code of Conduct`_ is a good reference in terms of behavior
|
43
|
+
guidelines.
|
44
|
+
|
45
|
+
|
46
|
+
Issue Reports
|
47
|
+
=============
|
48
|
+
|
49
|
+
If you experience bugs or general issues with ``PyKubeGrader``, please have a look
|
50
|
+
on the `issue tracker`_. If you don't see anything useful there, please feel
|
51
|
+
free to fire an issue report.
|
52
|
+
|
53
|
+
.. tip::
|
54
|
+
Please don't forget to include the closed issues in your search.
|
55
|
+
Sometimes a solution was already reported, and the problem is considered
|
56
|
+
**solved**.
|
57
|
+
|
58
|
+
New issue reports should include information about your programming environment
|
59
|
+
(e.g., operating system, Python version) and steps to reproduce the problem.
|
60
|
+
Please try also to simplify the reproduction steps to a very minimal example
|
61
|
+
that still illustrates the problem you are facing. By removing other factors,
|
62
|
+
you help us to identify the root cause of the issue.
|
63
|
+
|
64
|
+
|
65
|
+
Documentation Improvements
|
66
|
+
==========================
|
67
|
+
|
68
|
+
You can help improve ``PyKubeGrader`` docs by making them more readable and coherent, or
|
69
|
+
by adding missing information and correcting mistakes.
|
70
|
+
|
71
|
+
``PyKubeGrader`` documentation uses Sphinx_ as its main documentation compiler.
|
72
|
+
This means that the docs are kept in the same repository as the project code, and
|
73
|
+
that any documentation update is done in the same way was a code contribution.
|
74
|
+
|
75
|
+
.. todo:: Don't forget to mention which markup language you are using.
|
76
|
+
|
77
|
+
e.g., reStructuredText_ or CommonMark_ with MyST_ extensions.
|
78
|
+
|
79
|
+
.. todo:: If your project is hosted on GitHub, you can also mention the following tip:
|
80
|
+
|
81
|
+
.. tip::
|
82
|
+
Please notice that the `GitHub web interface`_ provides a quick way of
|
83
|
+
propose changes in ``PyKubeGrader``'s files. While this mechanism can
|
84
|
+
be tricky for normal code contributions, it works perfectly fine for
|
85
|
+
contributing to the docs, and can be quite handy.
|
86
|
+
|
87
|
+
If you are interested in trying this method out, please navigate to
|
88
|
+
the ``docs`` folder in the source repository_, find which file you
|
89
|
+
would like to propose changes and click in the little pencil icon at the
|
90
|
+
top, to open `GitHub's code editor`_. Once you finish editing the file,
|
91
|
+
please write a message in the form at the bottom of the page describing
|
92
|
+
which changes have you made and what are the motivations behind them and
|
93
|
+
submit your proposal.
|
94
|
+
|
95
|
+
When working on documentation changes in your local machine, you can
|
96
|
+
compile them using |tox|_::
|
97
|
+
|
98
|
+
tox -e docs
|
99
|
+
|
100
|
+
and use Python's built-in web server for a preview in your web browser
|
101
|
+
(``http://localhost:8000``)::
|
102
|
+
|
103
|
+
python3 -m http.server --directory 'docs/_build/html'
|
104
|
+
|
105
|
+
|
106
|
+
Code Contributions
|
107
|
+
==================
|
108
|
+
|
109
|
+
.. todo:: Please include a reference or explanation about the internals of the project.
|
110
|
+
|
111
|
+
An architecture description, design principles or at least a summary of the
|
112
|
+
main concepts will make it easy for potential contributors to get started
|
113
|
+
quickly.
|
114
|
+
|
115
|
+
Submit an issue
|
116
|
+
---------------
|
117
|
+
|
118
|
+
Before you work on any non-trivial code contribution it's best to first create
|
119
|
+
a report in the `issue tracker`_ to start a discussion on the subject.
|
120
|
+
This often provides additional considerations and avoids unnecessary work.
|
121
|
+
|
122
|
+
Create an environment
|
123
|
+
---------------------
|
124
|
+
|
125
|
+
Before you start coding, we recommend creating an isolated `virtual
|
126
|
+
environment`_ to avoid any problems with your installed Python packages.
|
127
|
+
This can easily be done via either |virtualenv|_::
|
128
|
+
|
129
|
+
virtualenv <PATH TO VENV>
|
130
|
+
source <PATH TO VENV>/bin/activate
|
131
|
+
|
132
|
+
or Miniconda_::
|
133
|
+
|
134
|
+
conda create -n PyKubeGrader python=3 six virtualenv pytest pytest-cov
|
135
|
+
conda activate PyKubeGrader
|
136
|
+
|
137
|
+
Clone the repository
|
138
|
+
--------------------
|
139
|
+
|
140
|
+
#. Create an user account on |the repository service| if you do not already have one.
|
141
|
+
#. Fork the project repository_: click on the *Fork* button near the top of the
|
142
|
+
page. This creates a copy of the code under your account on |the repository service|.
|
143
|
+
#. Clone this copy to your local disk::
|
144
|
+
|
145
|
+
git clone git@github.com:YourLogin/PyKubeGrader.git
|
146
|
+
cd PyKubeGrader
|
147
|
+
|
148
|
+
#. You should run::
|
149
|
+
|
150
|
+
pip install -U pip setuptools -e .
|
151
|
+
|
152
|
+
to be able to import the package under development in the Python REPL.
|
153
|
+
|
154
|
+
.. todo:: if you are not using pre-commit, please remove the following item:
|
155
|
+
|
156
|
+
#. Install |pre-commit|_::
|
157
|
+
|
158
|
+
pip install pre-commit
|
159
|
+
pre-commit install
|
160
|
+
|
161
|
+
``PyKubeGrader`` comes with a lot of hooks configured to automatically help the
|
162
|
+
developer to check the code being written.
|
163
|
+
|
164
|
+
Implement your changes
|
165
|
+
----------------------
|
166
|
+
|
167
|
+
#. Create a branch to hold your changes::
|
168
|
+
|
169
|
+
git checkout -b my-feature
|
170
|
+
|
171
|
+
and start making changes. Never work on the main branch!
|
172
|
+
|
173
|
+
#. Start your work on this branch. Don't forget to add docstrings_ to new
|
174
|
+
functions, modules and classes, especially if they are part of public APIs.
|
175
|
+
|
176
|
+
#. Add yourself to the list of contributors in ``AUTHORS.rst``.
|
177
|
+
|
178
|
+
#. When you’re done editing, do::
|
179
|
+
|
180
|
+
git add <MODIFIED FILES>
|
181
|
+
git commit
|
182
|
+
|
183
|
+
to record your changes in git_.
|
184
|
+
|
185
|
+
.. todo:: if you are not using pre-commit, please remove the following item:
|
186
|
+
|
187
|
+
Please make sure to see the validation messages from |pre-commit|_ and fix
|
188
|
+
any eventual issues.
|
189
|
+
This should automatically use flake8_/black_ to check/fix the code style
|
190
|
+
in a way that is compatible with the project.
|
191
|
+
|
192
|
+
.. important:: Don't forget to add unit tests and documentation in case your
|
193
|
+
contribution adds an additional feature and is not just a bugfix.
|
194
|
+
|
195
|
+
Moreover, writing a `descriptive commit message`_ is highly recommended.
|
196
|
+
In case of doubt, you can check the commit history with::
|
197
|
+
|
198
|
+
git log --graph --decorate --pretty=oneline --abbrev-commit --all
|
199
|
+
|
200
|
+
to look for recurring communication patterns.
|
201
|
+
|
202
|
+
#. Please check that your changes don't break any unit tests with::
|
203
|
+
|
204
|
+
tox
|
205
|
+
|
206
|
+
(after having installed |tox|_ with ``pip install tox`` or ``pipx``).
|
207
|
+
|
208
|
+
You can also use |tox|_ to run several other pre-configured tasks in the
|
209
|
+
repository. Try ``tox -av`` to see a list of the available checks.
|
210
|
+
|
211
|
+
Submit your contribution
|
212
|
+
------------------------
|
213
|
+
|
214
|
+
#. If everything works fine, push your local branch to |the repository service| with::
|
215
|
+
|
216
|
+
git push -u origin my-feature
|
217
|
+
|
218
|
+
#. Go to the web page of your fork and click |contribute button|
|
219
|
+
to send your changes for review.
|
220
|
+
|
221
|
+
.. todo:: if you are using GitHub, you can uncomment the following paragraph
|
222
|
+
|
223
|
+
Find more detailed information in `creating a PR`_. You might also want to open
|
224
|
+
the PR as a draft first and mark it as ready for review after the feedbacks
|
225
|
+
from the continuous integration (CI) system or any required fixes.
|
226
|
+
|
227
|
+
|
228
|
+
Troubleshooting
|
229
|
+
---------------
|
230
|
+
|
231
|
+
The following tips can be used when facing problems to build or test the
|
232
|
+
package:
|
233
|
+
|
234
|
+
#. Make sure to fetch all the tags from the upstream repository_.
|
235
|
+
The command ``git describe --abbrev=0 --tags`` should return the version you
|
236
|
+
are expecting. If you are trying to run CI scripts in a fork repository,
|
237
|
+
make sure to push all the tags.
|
238
|
+
You can also try to remove all the egg files or the complete egg folder, i.e.,
|
239
|
+
``.eggs``, as well as the ``*.egg-info`` folders in the ``src`` folder or
|
240
|
+
potentially in the root of your project.
|
241
|
+
|
242
|
+
#. Sometimes |tox|_ misses out when new dependencies are added, especially to
|
243
|
+
``setup.cfg`` and ``docs/requirements.txt``. If you find any problems with
|
244
|
+
missing dependencies when running a command with |tox|_, try to recreate the
|
245
|
+
``tox`` environment using the ``-r`` flag. For example, instead of::
|
246
|
+
|
247
|
+
tox -e docs
|
248
|
+
|
249
|
+
Try running::
|
250
|
+
|
251
|
+
tox -r -e docs
|
252
|
+
|
253
|
+
#. Make sure to have a reliable |tox|_ installation that uses the correct
|
254
|
+
Python version (e.g., 3.7+). When in doubt you can run::
|
255
|
+
|
256
|
+
tox --version
|
257
|
+
# OR
|
258
|
+
which tox
|
259
|
+
|
260
|
+
If you have trouble and are seeing weird errors upon running |tox|_, you can
|
261
|
+
also try to create a dedicated `virtual environment`_ with a |tox|_ binary
|
262
|
+
freshly installed. For example::
|
263
|
+
|
264
|
+
virtualenv .venv
|
265
|
+
source .venv/bin/activate
|
266
|
+
.venv/bin/pip install tox
|
267
|
+
.venv/bin/tox -e all
|
268
|
+
|
269
|
+
#. `Pytest can drop you`_ in an interactive session in the case an error occurs.
|
270
|
+
In order to do that you need to pass a ``--pdb`` option (for example by
|
271
|
+
running ``tox -- -k <NAME OF THE FALLING TEST> --pdb``).
|
272
|
+
You can also setup breakpoints manually instead of using the ``--pdb`` option.
|
273
|
+
|
274
|
+
|
275
|
+
Maintainer tasks
|
276
|
+
================
|
277
|
+
|
278
|
+
Releases
|
279
|
+
--------
|
280
|
+
|
281
|
+
.. todo:: This section assumes you are using PyPI to publicly release your package.
|
282
|
+
|
283
|
+
If instead you are using a different/private package index, please update
|
284
|
+
the instructions accordingly.
|
285
|
+
|
286
|
+
If you are part of the group of maintainers and have correct user permissions
|
287
|
+
on PyPI_, the following steps can be used to release a new version for
|
288
|
+
``PyKubeGrader``:
|
289
|
+
|
290
|
+
#. Make sure all unit tests are successful.
|
291
|
+
#. Tag the current commit on the main branch with a release tag, e.g., ``v1.2.3``.
|
292
|
+
#. Push the new tag to the upstream repository_, e.g., ``git push upstream v1.2.3``
|
293
|
+
#. Clean up the ``dist`` and ``build`` folders with ``tox -e clean``
|
294
|
+
(or ``rm -rf dist build``)
|
295
|
+
to avoid confusion with old builds and Sphinx docs.
|
296
|
+
#. Run ``tox -e build`` and check that the files in ``dist`` have
|
297
|
+
the correct version (no ``.dirty`` or git_ hash) according to the git_ tag.
|
298
|
+
Also check the sizes of the distributions, if they are too big (e.g., >
|
299
|
+
500KB), unwanted clutter may have been accidentally included.
|
300
|
+
#. Run ``tox -e publish -- --repository pypi`` and check that everything was
|
301
|
+
uploaded to PyPI_ correctly.
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
.. [#contrib1] Even though, these resources focus on open source projects and
|
306
|
+
communities, the general ideas behind collaborating with other developers
|
307
|
+
to collectively create software are general and can be applied to all sorts
|
308
|
+
of environments, including private companies and proprietary code bases.
|
309
|
+
|
310
|
+
|
311
|
+
.. <-- start -->
|
312
|
+
.. todo:: Please review and change the following definitions:
|
313
|
+
|
314
|
+
.. |the repository service| replace:: GitHub
|
315
|
+
.. |contribute button| replace:: "Create pull request"
|
316
|
+
|
317
|
+
.. _repository: https://github.com/<USERNAME>/PyKubeGrader
|
318
|
+
.. _issue tracker: https://github.com/<USERNAME>/PyKubeGrader/issues
|
319
|
+
.. <-- end -->
|
320
|
+
|
321
|
+
|
322
|
+
.. |virtualenv| replace:: ``virtualenv``
|
323
|
+
.. |pre-commit| replace:: ``pre-commit``
|
324
|
+
.. |tox| replace:: ``tox``
|
325
|
+
|
326
|
+
|
327
|
+
.. _black: https://pypi.org/project/black/
|
328
|
+
.. _CommonMark: https://commonmark.org/
|
329
|
+
.. _contribution-guide.org: https://www.contribution-guide.org/
|
330
|
+
.. _creating a PR: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request
|
331
|
+
.. _descriptive commit message: https://chris.beams.io/posts/git-commit
|
332
|
+
.. _docstrings: https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html
|
333
|
+
.. _first-contributions tutorial: https://github.com/firstcontributions/first-contributions
|
334
|
+
.. _flake8: https://flake8.pycqa.org/en/stable/
|
335
|
+
.. _git: https://git-scm.com
|
336
|
+
.. _GitHub's fork and pull request workflow: https://guides.github.com/activities/forking/
|
337
|
+
.. _guide created by FreeCodeCamp: https://github.com/FreeCodeCamp/how-to-contribute-to-open-source
|
338
|
+
.. _Miniconda: https://docs.conda.io/en/latest/miniconda.html
|
339
|
+
.. _MyST: https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html
|
340
|
+
.. _other kinds of contributions: https://opensource.guide/how-to-contribute
|
341
|
+
.. _pre-commit: https://pre-commit.com/
|
342
|
+
.. _PyPI: https://pypi.org/
|
343
|
+
.. _PyScaffold's contributor's guide: https://pyscaffold.org/en/stable/contributing.html
|
344
|
+
.. _Pytest can drop you: https://docs.pytest.org/en/stable/how-to/failures.html#using-python-library-pdb-with-pytest
|
345
|
+
.. _Python Software Foundation's Code of Conduct: https://www.python.org/psf/conduct/
|
346
|
+
.. _reStructuredText: https://www.sphinx-doc.org/en/master/usage/restructuredtext/
|
347
|
+
.. _Sphinx: https://www.sphinx-doc.org/en/master/
|
348
|
+
.. _tox: https://tox.wiki/en/stable/
|
349
|
+
.. _virtual environment: https://realpython.com/python-virtual-environments-a-primer/
|
350
|
+
.. _virtualenv: https://virtualenv.pypa.io/en/stable/
|
351
|
+
|
352
|
+
.. _GitHub web interface: https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files
|
353
|
+
.. _GitHub's code editor: https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files
|
@@ -0,0 +1,28 @@
|
|
1
|
+
BSD 3-Clause License
|
2
|
+
|
3
|
+
Copyright (c) 2024, M3-Learning: Multifunctional Materials and Machine Learning
|
4
|
+
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
7
|
+
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
list of conditions and the following disclaimer.
|
10
|
+
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
13
|
+
and/or other materials provided with the distribution.
|
14
|
+
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
16
|
+
contributors may be used to endorse or promote products derived from
|
17
|
+
this software without specific prior written permission.
|
18
|
+
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -0,0 +1,69 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: PyKubeGrader
|
3
|
+
Version: 0.0.4
|
4
|
+
Summary: Add a short description here!
|
5
|
+
Home-page: https://github.com/pyscaffold/pyscaffold/
|
6
|
+
Author: jagar2
|
7
|
+
Author-email: jca92@drexel.edu
|
8
|
+
License: MIT
|
9
|
+
Project-URL: Documentation, https://pyscaffold.org/
|
10
|
+
Platform: any
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
12
|
+
Classifier: Programming Language :: Python
|
13
|
+
Description-Content-Type: text/x-rst; charset=UTF-8
|
14
|
+
License-File: LICENSE.txt
|
15
|
+
Requires-Dist: importlib-metadata; python_version < "3.8"
|
16
|
+
Provides-Extra: testing
|
17
|
+
Requires-Dist: setuptools; extra == "testing"
|
18
|
+
Requires-Dist: pytest; extra == "testing"
|
19
|
+
Requires-Dist: pytest-cov; extra == "testing"
|
20
|
+
|
21
|
+
.. These are examples of badges you might want to add to your README:
|
22
|
+
please update the URLs accordingly
|
23
|
+
|
24
|
+
.. image:: https://api.cirrus-ci.com/github/<USER>/PyKubeGrader.svg?branch=main
|
25
|
+
:alt: Built Status
|
26
|
+
:target: https://cirrus-ci.com/github/<USER>/PyKubeGrader
|
27
|
+
.. image:: https://readthedocs.org/projects/PyKubeGrader/badge/?version=latest
|
28
|
+
:alt: ReadTheDocs
|
29
|
+
:target: https://PyKubeGrader.readthedocs.io/en/stable/
|
30
|
+
.. image:: https://img.shields.io/coveralls/github/<USER>/PyKubeGrader/main.svg
|
31
|
+
:alt: Coveralls
|
32
|
+
:target: https://coveralls.io/r/<USER>/PyKubeGrader
|
33
|
+
.. image:: https://img.shields.io/pypi/v/PyKubeGrader.svg
|
34
|
+
:alt: PyPI-Server
|
35
|
+
:target: https://pypi.org/project/PyKubeGrader/
|
36
|
+
.. image:: https://img.shields.io/conda/vn/conda-forge/PyKubeGrader.svg
|
37
|
+
:alt: Conda-Forge
|
38
|
+
:target: https://anaconda.org/conda-forge/PyKubeGrader
|
39
|
+
.. image:: https://pepy.tech/badge/PyKubeGrader/month
|
40
|
+
:alt: Monthly Downloads
|
41
|
+
:target: https://pepy.tech/project/PyKubeGrader
|
42
|
+
.. image:: https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Twitter
|
43
|
+
:alt: Twitter
|
44
|
+
:target: https://twitter.com/PyKubeGrader
|
45
|
+
|
46
|
+
.. image:: https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold
|
47
|
+
:alt: Project generated with PyScaffold
|
48
|
+
:target: https://pyscaffold.org/
|
49
|
+
|
50
|
+
|
|
51
|
+
|
52
|
+
============
|
53
|
+
PyKubeGrader
|
54
|
+
============
|
55
|
+
|
56
|
+
|
57
|
+
Add a short description here!
|
58
|
+
|
59
|
+
|
60
|
+
A longer description of your project goes here...
|
61
|
+
|
62
|
+
|
63
|
+
.. _pyscaffold-notes:
|
64
|
+
|
65
|
+
Note
|
66
|
+
====
|
67
|
+
|
68
|
+
This project has been set up using PyScaffold 4.6. For details and usage
|
69
|
+
information on PyScaffold see https://pyscaffold.org/.
|