sparkenforce 0.1.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.
@@ -0,0 +1,25 @@
1
+ .venv
2
+ __pycache__
3
+ .mypy_cache
4
+ .pytest_cache
5
+ *.pyc
6
+ *.pyo
7
+ *.pyd
8
+ .Python
9
+ build/
10
+ develop-eggs/
11
+ dist/
12
+ downloads/
13
+ eggs/
14
+ .eggs/
15
+ lib/
16
+ lib64/
17
+ parts/
18
+ sdist/
19
+ var/
20
+ wheels/
21
+ share/python-wheels/
22
+ *.egg-info/
23
+ .installed.cfg
24
+ *.egg
25
+ MANIFEST
@@ -0,0 +1,40 @@
1
+ ARG PYTHON_VARIANT=3.10
2
+ ARG UV_VER=0.5.24
3
+ ARG DEBIAN_VER=bookworm
4
+ ARG WORKSPACE_NAME_=workspace
5
+ ARG PROJECT_NAME_=sparkenforce
6
+
7
+ # Install python
8
+ FROM ghcr.io/astral-sh/uv:$UV_VER AS uv
9
+
10
+ FROM mcr.microsoft.com/vscode/devcontainers/base:$DEBIAN_VER
11
+
12
+ # Install/Update linux packages; install common dev tools like: git, process tools, ...
13
+ # hadolint ignore=DL3008
14
+ RUN apt-get update \
15
+ && apt-get install -y --no-install-recommends\
16
+ procps \
17
+ build-essential \
18
+ curl \
19
+ swig \
20
+ wget \
21
+ # To reduce the image size, it is recommended refresh the package cache as follows.
22
+ && apt-get clean \
23
+ && rm -rf /var/lib/apt/lists/*
24
+
25
+ # Copies files or directories from the uv stage into the final stage,
26
+ # and ensures that the ownership of the copied files is adjusted to the user and group in the final image,
27
+ # and making its functionality or binaries available in the final container.
28
+ COPY --from=uv --chown=vscode: /uv /uvx /bin/
29
+
30
+ # Set the working directory
31
+ WORKDIR /${WORKSPACE_NAME_}
32
+
33
+
34
+ # Install OpenJDK
35
+ RUN apt-get update && apt-get upgrade -y && \
36
+ apt-get install software-properties-common -y && \
37
+ apt-get install python3-launchpadlib -y && \
38
+ add-apt-repository ppa:openjdk-r/ppa -y && \
39
+ apt-get install default-jre -y && \
40
+ apt-get clean;
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "Python 3.10 & Apache Spark",
3
+ "dockerComposeFile": "docker-compose.yml",
4
+ "service": "app",
5
+ "workspaceFolder": "/workspace",
6
+ "postCreateCommand": {
7
+ "uv-sync": "uv sync && . .venv/bin/activate"
8
+ },
9
+ "postStartCommand": {
10
+ "venv-activate": ". .venv/bin/activate"
11
+ },
12
+ "postAttachCommand": {
13
+ "venv-activate": ". .venv/bin/activate"
14
+ },
15
+ "customizations": {
16
+ "vscode": {
17
+ "settings": {
18
+ "terminal.integrated.profiles.linux": {
19
+ "bash": {
20
+ "path": "/bin/bash",
21
+ "icon": "terminal-bash"
22
+ }
23
+ },
24
+ "terminal.integrated.defaultProfile.linux": "bash",
25
+
26
+ // python
27
+ "python.defaultInterpreterPath": ".venv/bin/python3",
28
+ "python.linting.enabled": true,
29
+ "python.linting.pylintEnabled": true,
30
+ "python.testing.pytestArgs": ["tests"],
31
+ "python.testing.unittestEnabled": false,
32
+ "python.testing.pytestEnabled": true,
33
+
34
+ // jupyter
35
+ "jupyter.notebookFileRoot": "${workspaceRoot}",
36
+
37
+ // ruff
38
+ "ruff.configurationPreference": "filesystemFirst",
39
+ "ruff.configuration": "pyproject.toml",
40
+
41
+ // ty
42
+ "ty.experimental.completions.enable": true,
43
+ "ty.trace.server": "messages",
44
+ },
45
+ "extensions": [
46
+ "ms-python.python",
47
+ "ms-python.vscode-pylance",
48
+ "ms-python.black-formatter",
49
+ "astral-sh.ty",
50
+ "charliermarsh.ruff",
51
+ "visualstudioexptteam.vscodeintellicode",
52
+ "ms-toolsai.jupyter",
53
+ "njpwerner.autodocstring",
54
+ "kevinrose.vsc-python-indent"
55
+ ]
56
+ }
57
+ },
58
+ "remoteUser": "vscode"
59
+ }
@@ -0,0 +1,33 @@
1
+ x-args: &default-args
2
+ UV_VER: "0.5.24"
3
+ DEBIAN_VER: "bookworm"
4
+ WORKSPACE_NAME_: workspace
5
+ PROJECT_NAME_: ${PROJECT_NAME}
6
+
7
+ services:
8
+ app:
9
+ build:
10
+ context: ..
11
+ dockerfile: .devcontainer/Dockerfile
12
+ args:
13
+ <<: *default-args
14
+
15
+ volumes:
16
+ # Mount the current directory to workspace so code changes don't require an image rebuild. .venv is excluded in the .dockerignore file.
17
+ - type: bind
18
+ source: ..
19
+ target: /workspace
20
+
21
+ working_dir: /workspace
22
+
23
+ command: ["sleep", "infinity"]
24
+
25
+ depends_on:
26
+ - pyspark
27
+
28
+ pyspark:
29
+ image: jupyter/pyspark-notebook:latest
30
+ environment:
31
+ - JUPYTER_ENABLE_LAB=yes
32
+ ports:
33
+ - 8889:8888
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a bug in the system
4
+ title: "[Bug]: "
5
+ labels: bug
6
+ assignees: ""
7
+ ---
8
+
9
+ ### Description
10
+
11
+ A clear and concise description of the bug.
12
+
13
+ ### Steps to Reproduce
14
+
15
+ 1. Go to '...'
16
+ 2. Click on '...'
17
+ 3. See the error.
18
+
19
+ ### Expected Behavior
20
+
21
+ Explain what you expected to happen.
22
+
23
+ ### Screenshots
24
+
25
+ Add screenshots if applicable.
26
+
27
+ ### Environment
28
+
29
+ - OS: [e.g., Windows, macOS, Linux]
30
+ - Browser: [e.g., Chrome, Firefox]
31
+ - Version: [e.g., 1.0.0]
32
+
33
+ ### Additional Context
34
+
35
+ Add any other context about the problem here.
@@ -0,0 +1,22 @@
1
+ blank_issues_enabled: false
2
+ issue_templates:
3
+ - name: "Bug Report"
4
+ description: "Report a bug in the system."
5
+ title: "[Bug]: "
6
+ labels: ["bug"]
7
+ body: "./ISSUE_TEMPLATE/bug_report.md"
8
+ - name: "Feature Request"
9
+ description: "Propose a new feature or improvement."
10
+ title: "[Feature]: "
11
+ labels: ["enhancement"]
12
+ body: "./ISSUE_TEMPLATE/feature_request.md"
13
+ - name: "Documentation"
14
+ description: "Suggest updates or additions to the documentation."
15
+ title: "[Docs]: "
16
+ labels: ["documentation"]
17
+ body: "./ISSUE_TEMPLATE/documentation.md"
18
+ - name: "General Report"
19
+ description: "Provide general feedback or inquiries."
20
+ title: "[General]: "
21
+ labels: ["general"]
22
+ body: "./ISSUE_TEMPLATE/general_report.md"
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Documentation
3
+ about: Suggest updates or additions to documentation
4
+ title: "[Docs]: "
5
+ labels: documentation
6
+ assignees: ""
7
+ ---
8
+
9
+ ### Documentation Update
10
+
11
+ What part of the documentation needs to be updated or added?
12
+
13
+ ### Why Is This Needed?
14
+
15
+ Explain the importance of this update.
16
+
17
+ ### Suggested Changes
18
+
19
+ Provide a detailed description of the changes.
20
+
21
+ ### Additional Context
22
+
23
+ Include any related resources.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest a new feature or improvement
4
+ title: "[Feature]: "
5
+ labels: enhancement
6
+ assignees: ""
7
+ ---
8
+
9
+ ### Feature Description
10
+
11
+ What feature would you like to see?
12
+
13
+ ### Why Is This Needed?
14
+
15
+ Explain the problem or need for this feature.
16
+
17
+ ### Suggested Solutions
18
+
19
+ Describe how this feature could be implemented.
20
+
21
+ ### Additional Context
22
+
23
+ Add any relevant screenshots, links, or resources.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: General Report
3
+ about: Provide general feedback or inquiries
4
+ title: "[General]: "
5
+ labels: general
6
+ assignees: ""
7
+ ---
8
+
9
+ ### Feedback or Inquiry
10
+
11
+ Provide your feedback or inquiry.
12
+
13
+ ### Additional Information
14
+
15
+ Add any other relevant details here.
@@ -0,0 +1,11 @@
1
+ version: 2
2
+
3
+ updates:
4
+ - package-ecosystem: "uv"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+ security-updates: "auto"
9
+ open-pull-requests-limit: 10 # Maximum number of open pull requests
10
+ commit-message:
11
+ prefix: "DBOT" # Prefix for the commit message
@@ -0,0 +1,27 @@
1
+ ## Title
2
+
3
+ - Prefix your name with what type of change your making. Supported Types: **feat, fix, docs, style, refactor, perf, test, build, ci, revert, deps**.
4
+ - Make your title succinct and descriptive.
5
+
6
+ - (Good Example) **feat: Server analytics monitor added**
7
+
8
+ **[REMOVE THIS SECTION BEFORE SUBMISSION]**
9
+
10
+ ## Description
11
+
12
+ [Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context.]
13
+
14
+ ## Changes
15
+
16
+ [List the changes you have made.]
17
+
18
+ ## Additional Information
19
+
20
+ [Include any additional information, such as how to test your changes, or any extra information that would be relevant for the reviewer.]
21
+
22
+ ## Submission Checklist
23
+
24
+ - [ ] My code adheres to the coding and style guidelines.
25
+ - [ ] I have commented my code, and added/updated documentation.
26
+ - [ ] I have ran all tests, and added/updated any relevant ones.
27
+ - [ ] I have formatted and linted my code.
@@ -0,0 +1,16 @@
1
+ name: "PR Title Enforcement"
2
+ on:
3
+ pull_request:
4
+ types: [edited, opened, synchronize, reopened]
5
+
6
+ jobs:
7
+ title-check:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: naveenk1223/action-pr-title@master
11
+ with:
12
+ regex: ".+" # Regex the title should match.
13
+ allowed_prefixes: "feat, fix, docs, style, refactor, perf, test, build, ci, revert, deps" # title should start with the given prefix
14
+ prefix_case_sensitive: false # title prefix are case insensitive
15
+ min_length: 5 # Min length of the title
16
+ max_length: 120 # Max length of the title
@@ -0,0 +1,63 @@
1
+ # REQUIRED: Create a secret for PYPI_TOKEN in the repository settings
2
+ # secrets.PYPI_TOKEN: PyPI API token
3
+
4
+ name: Publish to PyPI
5
+
6
+ on:
7
+ # Deploy to Pypi when a release is published
8
+ release:
9
+ types: [published]
10
+
11
+ jobs:
12
+ # Get release version
13
+ set-version:
14
+ runs-on: ubuntu-24.04
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Export tag
19
+ id: vars
20
+ run: echo tag=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT
21
+ if: ${{ github.event_name == 'release' }}
22
+
23
+ - name: Update project version
24
+ run: |
25
+ sed -i "s/^version = \".*\"/version = \"$RELEASE_VERSION\"/" pyproject.toml
26
+ env:
27
+ RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
28
+ if: ${{ github.event_name == 'release' }}
29
+
30
+ - name: Upload updated pyproject.toml
31
+ uses: actions/upload-artifact@v4
32
+ with:
33
+ name: pyproject-toml
34
+ path: pyproject.toml
35
+
36
+ publish:
37
+ runs-on: ubuntu-latest
38
+ needs: [set-version]
39
+ steps:
40
+ - name: Check out
41
+ uses: actions/checkout@v4
42
+
43
+ - name: Install uv
44
+ uses: astral-sh/setup-uv@v5
45
+ with:
46
+ version: "0.6.5"
47
+
48
+ - name: Install Python dependencies
49
+ run: uv sync
50
+
51
+ - name: Download updated pyproject.toml
52
+ uses: actions/download-artifact@v4
53
+ with:
54
+ name: pyproject-toml
55
+
56
+ - name: Build package
57
+ run: uv build
58
+
59
+ - name: Publish package
60
+ run: uv publish
61
+ env:
62
+ UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
63
+ UV_PUBLISH_USERNAME: __token__
@@ -0,0 +1,150 @@
1
+
2
+ # PyCharm folder
3
+ .idea/
4
+
5
+ # Mac files
6
+ .DS_Store
7
+
8
+ # Byte-compiled / optimized / DLL files
9
+ __pycache__/
10
+ *.py[cod]
11
+ *$py.class
12
+
13
+ # C extensions
14
+ *.so
15
+
16
+ # Distribution / packaging
17
+ .Python
18
+ build/
19
+ develop-eggs/
20
+ dist/
21
+ downloads/
22
+ eggs/
23
+ .eggs/
24
+ lib/
25
+ lib64/
26
+ parts/
27
+ sdist/
28
+ var/
29
+ wheels/
30
+ share/python-wheels/
31
+ *.egg-info/
32
+ .installed.cfg
33
+ *.egg
34
+ MANIFEST
35
+ .pdm.toml
36
+ *.lock
37
+
38
+ # PyInstaller
39
+ *.manifest
40
+ *.spec
41
+
42
+ # Installer logs
43
+ pip-log.txt
44
+ pip-delete-this-directory.txt
45
+
46
+ # Unit test / coverage reports
47
+ htmlcov/
48
+ .tox/
49
+ .nox/
50
+ .coverage
51
+ .coverage.*
52
+ .cache
53
+ nosetests.xml
54
+ coverage.xml
55
+ *.cover
56
+ *.py,cover
57
+ .hypothesis/
58
+ .pytest_cache/
59
+ cover/
60
+
61
+ # Translations
62
+ *.mo
63
+ *.pot
64
+
65
+ # Django stuff:
66
+ *.log
67
+ local_settings.py
68
+ db.sqlite3
69
+ db.sqlite3-journal
70
+
71
+ # Flask stuff:
72
+ instance/
73
+ .webassets-cache
74
+
75
+ # Scrapy stuff:
76
+ .scrapy
77
+
78
+ # Sphinx documentation
79
+ docs/_build/
80
+
81
+ # PyBuilder
82
+ .pybuilder/
83
+ target/
84
+
85
+ # Jupyter Notebook
86
+ .ipynb_checkpoints
87
+
88
+ # IPython
89
+ profile_default/
90
+ ipython_config.py
91
+
92
+ # UV
93
+ .ruff_cache/
94
+
95
+ # poetry
96
+ poetry.lock
97
+
98
+ # pdm
99
+ .pdm.toml
100
+ .pdm-python
101
+ .pdm-build/
102
+
103
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
104
+ __pypackages__/
105
+
106
+ # Celery stuff
107
+ celerybeat-schedule
108
+ celerybeat.pid
109
+
110
+ # SageMath parsed files
111
+ *.sage.py
112
+
113
+ # Environments
114
+ .env
115
+ .venv
116
+ env/
117
+ venv/
118
+ ENV/
119
+ env.bak/
120
+ venv.bak/
121
+
122
+ # Spyder project settings
123
+ .spyderproject
124
+ .spyproject
125
+
126
+ # Rope project settings
127
+ .ropeproject
128
+
129
+ # mkdocs documentation
130
+ /site
131
+
132
+ # mypy
133
+ .mypy_cache/
134
+ .dmypy.json
135
+ dmypy.json
136
+
137
+ # Pyre type checker
138
+ .pyre/
139
+
140
+ # pytype static type analyzer
141
+ .pytype/
142
+
143
+ # Cython debug symbols
144
+ cython_debug/
145
+
146
+ # PyCharm
147
+ .idea/
148
+
149
+ # PyPI configuration file
150
+ .pypirc
@@ -0,0 +1,19 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: "v5.0.0"
4
+ hooks:
5
+ - id: check-case-conflict
6
+ - id: check-merge-conflict
7
+ - id: end-of-file-fixer
8
+ - id: trailing-whitespace
9
+ - id: check-yaml
10
+ - id: check-toml
11
+ - id: check-json
12
+
13
+ - repo: https://github.com/astral-sh/ruff-pre-commit
14
+ rev: "v0.11.13"
15
+ hooks:
16
+ - id: ruff-check
17
+ args: [--fix --config=pyproject.toml]
18
+ - id: ruff-format
19
+ args: [--config=pyproject.toml]
@@ -0,0 +1,11 @@
1
+ {
2
+ "recommendations": [
3
+ "astral-sh.ty",
4
+
5
+ "charliermarsh.ruff",
6
+ "ms-python.python",
7
+ "ms-python.vscode-pylance",
8
+ "njpwerner.autodocstring",
9
+ "kevinrose.vsc-python-indent"
10
+ ]
11
+ }