droidoc 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 (54) hide show
  1. droidoc-0.0.1/.dockerignore +8 -0
  2. droidoc-0.0.1/.flake8 +6 -0
  3. droidoc-0.0.1/.gitignore +135 -0
  4. droidoc-0.0.1/.gitlab-ci.yml +184 -0
  5. droidoc-0.0.1/.pre-commit-config.yaml +31 -0
  6. droidoc-0.0.1/AUTHORS.rst +13 -0
  7. droidoc-0.0.1/CHANGELOG +24 -0
  8. droidoc-0.0.1/CONTRIBUTING.rst +121 -0
  9. droidoc-0.0.1/LICENSE +21 -0
  10. droidoc-0.0.1/Makefile +223 -0
  11. droidoc-0.0.1/PKG-INFO +147 -0
  12. droidoc-0.0.1/README.rst +127 -0
  13. droidoc-0.0.1/docker/Dockerfile +64 -0
  14. droidoc-0.0.1/docker/build.sh +6 -0
  15. droidoc-0.0.1/docs/Makefile +20 -0
  16. droidoc-0.0.1/docs/make.bat +35 -0
  17. droidoc-0.0.1/docs/source/_static/.DS_Store +0 -0
  18. droidoc-0.0.1/docs/source/_static/assets/.DS_Store +0 -0
  19. droidoc-0.0.1/docs/source/_static/assets/style.css +186 -0
  20. droidoc-0.0.1/docs/source/_static/logo.png +0 -0
  21. droidoc-0.0.1/docs/source/_static/my-styles.css +7 -0
  22. droidoc-0.0.1/docs/source/_templates/layout.html +8 -0
  23. droidoc-0.0.1/docs/source/applicable_docs.rst +12 -0
  24. droidoc-0.0.1/docs/source/conf.py +383 -0
  25. droidoc-0.0.1/docs/source/conventions.rst +14 -0
  26. droidoc-0.0.1/docs/source/external_view.rst +8 -0
  27. droidoc-0.0.1/docs/source/glossary.rst +12 -0
  28. droidoc-0.0.1/docs/source/history.rst +4 -0
  29. droidoc-0.0.1/docs/source/index.rst +28 -0
  30. droidoc-0.0.1/docs/source/introduction.rst +19 -0
  31. droidoc-0.0.1/docs/source/legal.rst +5 -0
  32. droidoc-0.0.1/docs/source/operation_manual.rst +73 -0
  33. droidoc-0.0.1/docs/source/operations_basics.rst +7 -0
  34. droidoc-0.0.1/docs/source/operations_environment.rst +37 -0
  35. droidoc-0.0.1/docs/source/purpose.rst +7 -0
  36. droidoc-0.0.1/docs/source/reference_manual.rst +46 -0
  37. droidoc-0.0.1/docs/source/tutorial.rst +23 -0
  38. droidoc-0.0.1/droidoc/__init__.py +11 -0
  39. droidoc-0.0.1/droidoc/__main__.py +120 -0
  40. droidoc-0.0.1/droidoc/_version.py +13 -0
  41. droidoc-0.0.1/droidoc/conf/droidoc.conf +0 -0
  42. droidoc-0.0.1/droidoc/droidoc.py +99 -0
  43. droidoc-0.0.1/droidoc/monitoring.py +146 -0
  44. droidoc-0.0.1/pyproject.toml +88 -0
  45. droidoc-0.0.1/scripts/generate-changelog.bash +23 -0
  46. droidoc-0.0.1/scripts/init_remote_repo.bash +4 -0
  47. droidoc-0.0.1/scripts/install-hooks.bash +8 -0
  48. droidoc-0.0.1/scripts/license.py +34 -0
  49. droidoc-0.0.1/scripts/post-commit.bash +3 -0
  50. droidoc-0.0.1/scripts/publish_pypi.bash +12 -0
  51. droidoc-0.0.1/scripts/publish_pypi_test.bash +12 -0
  52. droidoc-0.0.1/tests/acceptance/algorithm_test.py +12 -0
  53. droidoc-0.0.1/tests/unit/monitoring_test.py +112 -0
  54. droidoc-0.0.1/tox.ini +21 -0
@@ -0,0 +1,8 @@
1
+ # Ignore everything
2
+ *
3
+
4
+ # Allow files and directories
5
+ !/droidoc/
6
+ !/Makefile
7
+ !/pyproject.toml
8
+ !/README.rst
droidoc-0.0.1/.flake8 ADDED
@@ -0,0 +1,6 @@
1
+ [flake8]
2
+ ignore = E203, E266, E501, W503, F403, F401
3
+ max-line-length = 79
4
+ max-complexity = 18
5
+ select = B,C,E,F,W,T4,B9
6
+ exclude = docs/source/conf.py
@@ -0,0 +1,135 @@
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
+
131
+ .droidoc
132
+
133
+ docs/build/
134
+
135
+ **/tests/msap_data/
@@ -0,0 +1,184 @@
1
+ # This is a GitLab CI configuration to build the project documentaiton and the docker image
2
+ image: docker:20
3
+
4
+ stages:
5
+ - doc # Stage to build the documentation
6
+ - build # Stage to build the Docker image
7
+ - push # Stage to push Docker images
8
+ - test # Stage to test
9
+ - quality # Stage ofr SonarQube
10
+
11
+ services:
12
+ - docker:dind
13
+
14
+ variables:
15
+ DOCKER_DRIVER: overlay2
16
+ DOCKER_TLS_CERTDIR: ''
17
+
18
+ before_script:
19
+ # Authenticate Docker with GitLab registry
20
+ # docker login asks for the password to be passed through stdin for security
21
+ # we use $CI_REGISTRY_PASSWORD here which is a special variable provided by GitLab
22
+ # https://docs.gitlab.com/ce/ci/variables/predefined_variables.html
23
+ - echo "CI_JOB_TOKEN=$CI_JOB_TOKEN"
24
+ - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
25
+
26
+ pages:
27
+ image: ubuntu
28
+ stage: doc
29
+ before_script:
30
+ # Install tools for installing dependencies for documentation generation
31
+ - TZ=Europe/Paris
32
+ - ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
33
+ - DEBIAN_FRONTEND=noninteractive apt -y update
34
+ - DEBIAN_FRONTEND=noninteractive apt -y install plantuml git
35
+ - apt -y install python3-pip python3-venv curl
36
+ - update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
37
+
38
+
39
+ # Install prerequisites for pyenv
40
+ - apt -y install curl git-core gcc make zlib1g-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev
41
+ # Install pyenv
42
+ - curl https://pyenv.run | bash
43
+ - export PATH="/root/.pyenv/bin:$PATH"
44
+ - eval "$(pyenv init -)"
45
+ - eval "$(pyenv virtualenv-init -)"
46
+
47
+ # Install poetry
48
+ - curl -sSL https://install.python-poetry.org | python3 -
49
+ - export PATH=$PATH:/root/.local/bin/
50
+ - poetry config installer.max-workers 10
51
+
52
+ script:
53
+ # Install dependencies and generate documentation
54
+ - make prepare-dev
55
+ - source .droidoc
56
+ - make install-dev
57
+ - make doc
58
+ - mkdir public
59
+ - mv docs/build/html/* public
60
+ - ls public/*
61
+
62
+ artifacts:
63
+ paths:
64
+ - public
65
+
66
+ rules:
67
+ - if: $CI_COMMIT_TAG =~ /^(\d+\.\d+\.\d+)$/
68
+
69
+ Build:
70
+ stage: build
71
+ script:
72
+ - echo "Building $CI_REGISTRY_IMAGE"
73
+ # fetches the latest image (not failing if image is not found)
74
+ - docker pull $CI_REGISTRY_IMAGE:latest || true
75
+ # builds the project,
76
+ # notice the cache-from, which is going to use the image we just pulled locally
77
+ # the built image is tagged locally with the commit SHA, and then pushed to
78
+ # the GitLab registry
79
+ - >
80
+ docker build
81
+ --pull
82
+ --cache-from $CI_REGISTRY_IMAGE:latest
83
+ --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
84
+ --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
85
+ --build-arg VERSION=$CI_COMMIT_SHA
86
+ --build-arg CI_JOB_TOKEN=$CI_JOB_TOKEN
87
+ .
88
+ - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
89
+
90
+ rules:
91
+ - if: $CI_COMMIT_BRANCH == "main"
92
+
93
+
94
+ # Here, the goal is to tag the "main" branch as "latest"
95
+ Push latest:
96
+ variables:
97
+ # We are just playing with Docker here.
98
+ # We do not need GitLab to clone the source code.
99
+ GIT_STRATEGY: none
100
+ stage: push
101
+ rules:
102
+ - if: $CI_COMMIT_BRANCH == "main"
103
+ script:
104
+ - echo "Create Tag latest"
105
+ # Because we have no guarantee that this job will be picked up by the same runner
106
+ # that built the image in the previous step, we pull it again locally
107
+ - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
108
+ # Then we tag it "latest"
109
+ - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest
110
+ # Annnd we push it.
111
+ - docker push $CI_REGISTRY_IMAGE:latest
112
+
113
+ # Finally, the goal here is to Docker tag any Git tag
114
+ # GitLab will start a new pipeline everytime a Git tag is created, which is pretty awesome
115
+ Push tag:
116
+ variables:
117
+ # Again, we do not need the source code here. Just playing with Docker.
118
+ GIT_STRATEGY: none
119
+ stage: push
120
+
121
+ script:
122
+ - echo "Create Tag $CI_COMMIT_REF_NAME"
123
+ - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
124
+ - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
125
+ - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
126
+
127
+ rules:
128
+ - if: $CI_COMMIT_TAG =~ /^(\d+\.\d+\.\d+)$/
129
+
130
+
131
+ test:
132
+ image: python:3.12-slim-bullseye
133
+ stage: test
134
+ before_script:
135
+ - apt update && apt install --yes make git curl
136
+ - curl -sSL https://install.python-poetry.org | python3
137
+ - export PATH="/root/.local/bin:$PATH"
138
+ - poetry config installer.max-workers 10
139
+ - make prepare-dev
140
+ - source .droidoc
141
+ - make install-dev
142
+ artifacts:
143
+ expose_as: coverage report
144
+ paths:
145
+ - coverage.xml
146
+ when: always
147
+ script:
148
+ - make coverage
149
+ - make coverage_xml
150
+ rules:
151
+ - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci" || $CI_COMMIT_TAG != null
152
+
153
+ sonar_qube:
154
+ image:
155
+ name: sonarsource/sonar-scanner-cli:5.0.1
156
+ entrypoint: ['']
157
+ dependencies:
158
+ - test
159
+ before_script: []
160
+ stage: quality
161
+ rules:
162
+ - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci" || $CI_COMMIT_TAG != null
163
+ script:
164
+ - java --version
165
+ - |
166
+ sonar-scanner \
167
+ -Dsonar.host.url=${SONAR_HOST_URL} \
168
+ -Dsonar.gitlab.commit_sha=${CI_COMMIT_SHA} \
169
+ -Dsonar.gitlab.project_id=${CI_PROJECT_ID} \
170
+ -Dsonar.gitlab.ref_name=${CI_COMMIT_REF_NAME} \
171
+ -Dsonar.gitlab.url=${CI_PROJECT_URL} \
172
+ -Dsonar.language=py \
173
+ -Dsonar.links.ci=${CI_PROJECT_URL}/pipelines \
174
+ -Dsonar.links.issue=${CI_PROJECT_URL}/-/issues \
175
+ -Dsonar.links.scm=${CI_PROJECT_URL} \
176
+ -Dsonar.login=${SONAR_TOKEN} \
177
+ -Dsonar.projectBaseDir=${CI_PROJECT_DIR} \
178
+ -Dsonar.projectKey=droidoc \
179
+ -Dsonar.projectName=${CI_PROJECT_NAME} \
180
+ -Dsonar.python.coverage.reportPaths=coverage.xml \
181
+ -Dsonar.sources=droidoc \
182
+ -Dsonar.sourceEncoding=UTF-8 \
183
+ -Dsonar.tests=tests \
184
+ -Dsonar.verbose=false
@@ -0,0 +1,31 @@
1
+ # See https://pre-commit.com for more information
2
+ # See https://pre-commit.com/hooks.html for more hooks
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v6.0.0
6
+ hooks:
7
+ - id: trailing-whitespace
8
+ - id: end-of-file-fixer
9
+ - id: check-yaml
10
+ - id: check-xml
11
+ - id: check-json
12
+ - id: check-added-large-files
13
+ - id: fix-byte-order-marker
14
+ - id: detect-private-key
15
+ - id: name-tests-test
16
+ - id: requirements-txt-fixer
17
+ - id: pretty-format-json
18
+ exclude: ^update/cookiecutter_answers\.json$
19
+ - repo: https://github.com/asottile/reorder_python_imports
20
+ rev: v3.19.0
21
+ hooks:
22
+ - id: reorder-python-imports
23
+ - repo: https://github.com/psf/black-pre-commit-mirror
24
+ rev: 26.10.1
25
+ hooks:
26
+ - id: black
27
+ language_version: python3
28
+ - repo: https://github.com/pycqa/flake8
29
+ rev: 7.4.1
30
+ hooks:
31
+ - id: flake8
@@ -0,0 +1,13 @@
1
+ =======
2
+ Credits
3
+ =======
4
+
5
+ Development Lead
6
+ ----------------
7
+
8
+ * Dinil Bose Palakkatharappil <dinilbose@gmail.com>
9
+
10
+ Contributors
11
+ ------------
12
+
13
+ None yet.
@@ -0,0 +1,24 @@
1
+ ### cookiecutter style applied (HEAD -> cookiecutter_style)
2
+ >Sat, 17 Oct 2026 22:25:28 +0200
3
+
4
+ >Author: dinilbose (dinilbose@gmail.com)
5
+
6
+ >Commiter: dinilbose (dinilbose@gmail.com)
7
+
8
+
9
+ ### Format code with black and reorder-python-imports
10
+ >Sat, 17 Oct 2026 22:24:54 +0200
11
+
12
+ >Author: dinilbose (dinilbose@gmail.com)
13
+
14
+ >Commiter: dinilbose (dinilbose@gmail.com)
15
+
16
+
17
+ ### Initial commit for cookiecutter style
18
+ >Sat, 17 Oct 2026 22:24:12 +0200
19
+
20
+ >Author: dinilbose (dinilbose@gmail.com)
21
+
22
+ >Commiter: dinilbose (dinilbose@gmail.com)
23
+
24
+
@@ -0,0 +1,121 @@
1
+ .. highlight:: shell
2
+
3
+ ============
4
+ Contributing
5
+ ============
6
+
7
+ Contributions are welcome, and they are greatly appreciated! Every little bit
8
+ helps, and credit will always be given.
9
+
10
+ You can contribute in many ways:
11
+
12
+ Types of Contributions
13
+ ----------------------
14
+
15
+ Report Bugs
16
+ ~~~~~~~~~~~
17
+
18
+ Report bugs at https://gitlab.com/dinilbose/droidoc/issues.
19
+
20
+ If you are reporting a bug, please include:
21
+
22
+ * Your operating system name and version.
23
+ * Any details about your local setup that might be helpful in troubleshooting.
24
+ * Detailed steps to reproduce the bug.
25
+
26
+ Fix Bugs
27
+ ~~~~~~~~
28
+
29
+ Look through the Gitlab issues for bugs. Anything tagged with "bug" and "help
30
+ wanted" is open to whoever wants to implement it.
31
+
32
+ Implement Features
33
+ ~~~~~~~~~~~~~~~~~~
34
+
35
+ Look through the Gitlab issues for features. Anything tagged with "enhancement"
36
+ and "help wanted" is open to whoever wants to implement it.
37
+
38
+ Write Documentation
39
+ ~~~~~~~~~~~~~~~~~~~
40
+
41
+ droidoc could always use more documentation, whether as part of the
42
+ official droidoc docs, in docstrings, or even on the web in blog posts,
43
+ articles, and such.
44
+
45
+ Submit Feedback
46
+ ~~~~~~~~~~~~~~~
47
+
48
+ The best way to send feedback is to file an issue at https://gitlab.com/dinilbose/droidoc/issues.
49
+
50
+ If you are proposing a feature:
51
+
52
+ * Explain in detail how it would work.
53
+ * Keep the scope as narrow as possible, to make it easier to implement.
54
+ * Remember that this is a volunteer-driven project, and that contributions
55
+ are welcome :)
56
+
57
+ Get Started!
58
+ ------------
59
+
60
+ Ready to contribute? Here's how to set up `droidoc` for local development.
61
+
62
+ 1. Fork the `droidoc` repo on Gitlab.
63
+ 2. Clone your fork locally::
64
+
65
+ $ git clone https://gitlab.com/dinilbose/droidoc.git
66
+
67
+ 3. Install your local copy into a virtualenv. Assuming you have virtualenv installed, this is how you set up your fork for local development::
68
+
69
+ $ cd droidoc/
70
+ $ make prepare-dev
71
+ $ source .droidoc/
72
+ $ make install-dev
73
+
74
+ 4. Create a branch for local development::
75
+
76
+ $ git checkout -b name-of-your-bugfix-or-feature
77
+
78
+ Now you can make your changes locally.
79
+
80
+ 5. When you're done making changes, check that your changes pass flake8 and the
81
+ tests, including testing other Python versions with tox::
82
+
83
+ $ make lint
84
+ $ make tests
85
+ $ tox
86
+
87
+
88
+ 6. Commit your changes and push your branch to Gitlab::
89
+
90
+ $ git add .
91
+ $ git commit -m "Your detailed description of your changes."
92
+ $ git push origin name-of-your-bugfix-or-feature
93
+
94
+ 7. Submit a pull request through the Gitlab website.
95
+
96
+ Pull Request Guidelines
97
+ -----------------------
98
+
99
+ Before you submit a pull request, check that it meets these guidelines:
100
+
101
+ 1. The pull request should include tests.
102
+ 2. If the pull request adds functionality, the docs should be updated. Put
103
+ your new functionality in your commit message.
104
+
105
+
106
+ Tips
107
+ ----
108
+
109
+ To run a subset of tests::
110
+
111
+ $ pytest tests.test_droidoc
112
+
113
+
114
+ Deploying
115
+ ---------
116
+
117
+ A reminder for the maintainers on how to deploy.
118
+ Make sure all your changes are committed.
119
+ Then run::
120
+
121
+ git tag -a v1.4.0 -m "my version 1.4.0"
droidoc-0.0.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2026] [-]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.