swan-ml 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,39 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ build:
13
+ name: Build and Test (${{ matrix.python-version }})
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ matrix:
17
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
18
+
19
+ steps:
20
+ - uses: actions/checkout@v6
21
+
22
+ - name: Install the latest version of uv and set the python version
23
+ uses: astral-sh/setup-uv@v7
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+
27
+ - name: Set up Node
28
+ uses: actions/setup-node@v6
29
+ with:
30
+ node-version: "24"
31
+
32
+ - name: Install JS dependencies
33
+ run: uv run jlpm install --immutable
34
+
35
+ - name: Lint Python 🧹
36
+ run: uv run ruff check
37
+
38
+ - name: Lint JS/TS/CSS 🧹
39
+ run: uv run jlpm lint
@@ -0,0 +1,31 @@
1
+ name: Upload To PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ pypi-publish:
13
+
14
+ runs-on: ubuntu-latest
15
+ environment: pypi
16
+ permissions:
17
+ id-token: write
18
+
19
+ steps:
20
+ - uses: actions/checkout@v6
21
+
22
+ - name: Install the latest version of uv and set the python version
23
+ uses: astral-sh/setup-uv@v7
24
+ with:
25
+ python-version: '3.14'
26
+
27
+ - name: Build package 📦
28
+ run: uv build
29
+
30
+ - name: Publish package distributions to PyPI
31
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,20 @@
1
+ # Python
2
+ __pycache__/
3
+ dist/
4
+
5
+ # Virtual environments
6
+ .venv/
7
+
8
+ # Node
9
+ node_modules/
10
+ .yarn/
11
+
12
+ # TypeScript / JupyterLab build output
13
+ lib/
14
+ swan_ml/labextension/
15
+ swan_ml/_version.py
16
+ tsconfig.tsbuildinfo
17
+
18
+ # Jupyter
19
+ .ipynb_checkpoints/
20
+
@@ -0,0 +1,11 @@
1
+ node_modules
2
+ .yarn
3
+ .venv
4
+ lib
5
+ dist
6
+ swan_ml/labextension
7
+ swan_ml/_version.py
8
+ tsconfig.tsbuildinfo
9
+ yarn.lock
10
+ package-lock.json
11
+ uv.lock
@@ -0,0 +1,8 @@
1
+ {
2
+ "printWidth": 120,
3
+ "tabWidth": 2,
4
+ "semi": true,
5
+ "singleQuote": false,
6
+ "trailingComma": "all",
7
+ "arrowParens": "avoid"
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": ["stylelint-config-standard"],
3
+ "rules": {
4
+ "no-descending-specificity": null
5
+ },
6
+ "ignoreFiles": [
7
+ "node_modules/**",
8
+ "lib/**",
9
+ "swan_ml/labextension/**",
10
+ ".venv/**",
11
+ ".yarn/**"
12
+ ]
13
+ }
@@ -0,0 +1 @@
1
+ nodeLinker: node-modules
swan_ml-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.4
2
+ Name: swan-ml
3
+ Version: 0.1.0
4
+ Summary: JupyterLab sidebar showing ml.cern.ch pipeline run status
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.11
7
+ Requires-Dist: jupyter-server>=2.0
8
+ Requires-Dist: kfp>=2.8.0
9
+ Requires-Dist: pyjwt>=2.0.1
@@ -0,0 +1,27 @@
1
+ # swan-ml
2
+
3
+ JupyterLab sidebar extension showing [ml.cern.ch](https://ml.cern.ch)
4
+ pipeline run status in real-time.
5
+
6
+ ![](mlcern.png)
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ pip install swan-ml
12
+ ```
13
+
14
+ ### Development
15
+
16
+ ```bash
17
+ # Install and build
18
+ pip install -e ".[dev]"
19
+
20
+ # Or install and build manually
21
+ jlpm install
22
+ jlpm build
23
+ jupyter labextension develop --overwrite .
24
+
25
+ # Watch for changes (in a separate terminal)
26
+ jlpm watch
27
+ ```
@@ -0,0 +1,53 @@
1
+ import js from "@eslint/js";
2
+ import tseslint from "typescript-eslint";
3
+ import react from "eslint-plugin-react";
4
+ import reactHooks from "eslint-plugin-react-hooks";
5
+ import prettier from "eslint-config-prettier";
6
+ import globals from "globals";
7
+
8
+ export default tseslint.config(
9
+ {
10
+ ignores: [
11
+ "lib/**",
12
+ "node_modules/**",
13
+ "swan_ml/labextension/**",
14
+ ".venv/**",
15
+ ".yarn/**",
16
+ "coverage/**",
17
+ ],
18
+ },
19
+ js.configs.recommended,
20
+ ...tseslint.configs.recommended,
21
+ {
22
+ files: ["src/**/*.{ts,tsx}"],
23
+ languageOptions: {
24
+ parserOptions: {
25
+ ecmaFeatures: { jsx: true },
26
+ },
27
+ globals: {
28
+ ...globals.browser,
29
+ },
30
+ },
31
+ plugins: {
32
+ react,
33
+ "react-hooks": reactHooks,
34
+ },
35
+ settings: {
36
+ react: { version: "18.3" },
37
+ },
38
+ rules: {
39
+ ...react.configs.recommended.rules,
40
+ ...reactHooks.configs.recommended.rules,
41
+ "react/react-in-jsx-scope": "off",
42
+ "react/prop-types": "off",
43
+ "@typescript-eslint/no-explicit-any": "warn",
44
+ "@typescript-eslint/no-unused-vars": [
45
+ "error",
46
+ { argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
47
+ ],
48
+ eqeqeq: ["error", "always"],
49
+ "no-console": ["warn", { allow: ["warn", "error"] }],
50
+ },
51
+ },
52
+ prettier,
53
+ );
@@ -0,0 +1,5 @@
1
+ {
2
+ "packageManager": "python",
3
+ "packageName": "swan-ml",
4
+ "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package swan-ml"
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "ServerApp": {
3
+ "jpserver_extensions": {
4
+ "swan_ml": true
5
+ }
6
+ }
7
+ }
Binary file