paddle 1.1.5__tar.gz → 1.1.7__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 (36) hide show
  1. {paddle-1.1.5 → paddle-1.1.7}/.bumpversion.cfg +1 -1
  2. {paddle-1.1.5 → paddle-1.1.7}/.github/workflows/ci.yml +2 -1
  3. {paddle-1.1.5 → paddle-1.1.7}/.gitignore +3 -0
  4. {paddle-1.1.5 → paddle-1.1.7}/PKG-INFO +39 -11
  5. paddle-1.1.7/README.md +78 -0
  6. paddle-1.1.7/docker/Dockerfile +131 -0
  7. paddle-1.1.7/docker/requirements.txt +2 -0
  8. paddle-1.1.7/docker-compose.override.yaml.tmp +17 -0
  9. paddle-1.1.7/docker-compose.yaml +20 -0
  10. {paddle-1.1.5 → paddle-1.1.7}/pyproject.toml +3 -2
  11. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/__init__.py +1 -1
  12. paddle-1.1.5/README.md +0 -51
  13. paddle-1.1.5/docker-compose.override.yaml +0 -0
  14. paddle-1.1.5/docker-compose.yaml +0 -29
  15. {paddle-1.1.5 → paddle-1.1.7}/.github/workflows/bump-and-tag.yaml +0 -0
  16. {paddle-1.1.5 → paddle-1.1.7}/.github/workflows/cd.yml +0 -0
  17. {paddle-1.1.5 → paddle-1.1.7}/.pre-commit-config.yaml +0 -0
  18. {paddle-1.1.5 → paddle-1.1.7}/LICENSE +0 -0
  19. {paddle-1.1.5 → paddle-1.1.7}/Makefile +0 -0
  20. {paddle-1.1.5 → paddle-1.1.7}/docker/.dockerignore +0 -0
  21. /paddle-1.1.5/docker/Dockerfile → /paddle-1.1.7/docker/Dockerfile.cuda +0 -0
  22. {paddle-1.1.5 → paddle-1.1.7}/docker/entrypoint.sh +0 -0
  23. {paddle-1.1.5 → paddle-1.1.7}/docker/nvim/init.lua +0 -0
  24. {paddle-1.1.5 → paddle-1.1.7}/docker/nvim/lua/plugins.lua +0 -0
  25. {paddle-1.1.5 → paddle-1.1.7}/docker/scripts/git-done +0 -0
  26. {paddle-1.1.5 → paddle-1.1.7}/docker/scripts/git-send +0 -0
  27. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/crm.py +0 -0
  28. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/evolve_kinetics.py +0 -0
  29. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/find_init_params.py +0 -0
  30. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/nc2pt.py +0 -0
  31. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/pt2nc.py +0 -0
  32. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/setup_profile.py +0 -0
  33. {paddle-1.1.5 → paddle-1.1.7}/src/paddle/write_profile.py +0 -0
  34. {paddle-1.1.5 → paddle-1.1.7}/tests/.gitignore +0 -0
  35. {paddle-1.1.5 → paddle-1.1.7}/tests/data/saturn1d.yaml +0 -0
  36. {paddle-1.1.5 → paddle-1.1.7}/tests/test_saturn_adiabat.py +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 1.1.5
2
+ current_version = 1.1.7
3
3
  commit = True
4
4
  tag = True
5
5
 
@@ -44,7 +44,8 @@ jobs:
44
44
  strategy:
45
45
  fail-fast: true
46
46
  matrix:
47
- os: [ubuntu-latest, macOS-latest]
47
+ #os: [ubuntu-latest, macOS-latest]
48
+ os: [ubuntu-latest]
48
49
  steps:
49
50
  - name: Check out code
50
51
  uses: actions/checkout@v4
@@ -205,3 +205,6 @@ cython_debug/
205
205
  marimo/_static/
206
206
  marimo/_lsp/
207
207
  __marimo__/
208
+
209
+ # docker
210
+ docker-compose.override.yaml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: paddle
3
- Version: 1.1.5
3
+ Version: 1.1.7
4
4
  Summary: Python Atmospheric Dynamics: Discovery and Learning about Exoplanets. An open-source, user-friendly python frontend of canoe
5
5
  Project-URL: Homepage, https://github.com/elijah-mullens/paddle
6
6
  Project-URL: Repository, https://github.com/elijah-mullens/paddle
@@ -23,7 +23,8 @@ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
23
23
  Classifier: Topic :: Scientific/Engineering :: Physics
24
24
  Requires-Python: >=3.9
25
25
  Requires-Dist: kintera>=1.1.5
26
- Requires-Dist: snapy>=0.8.2
26
+ Requires-Dist: scipy
27
+ Requires-Dist: snapy>=0.8.1
27
28
  Requires-Dist: torch<=2.7.1,>=2.7.0
28
29
  Provides-Extra: dev
29
30
  Requires-Dist: pytest>=7; extra == 'dev'
@@ -33,43 +34,66 @@ Description-Content-Type: text/markdown
33
34
  Python Atmospheric Dynamics: Discovering and Learning about Exoplanets. An open-source, user-friendly python version of canoe.
34
35
 
35
36
  ## Install docker and docker-compose plugin
37
+ 1. install docker with compose
38
+ ```bash
39
+ curl -fsSL https://get.docker.com | sudo sh
40
+ ```
36
41
 
42
+ 1. start docker
43
+ sudo systemctl start docker
37
44
 
38
- ## Create a python virtual environment
45
+ ## Test package
46
+ 1. Create a python virtual environment
39
47
  ```bash
40
48
  python -m venv pyenv
41
49
  ```
42
50
 
43
- # Create a docker container
51
+ 2. Install paddle package
52
+ ```bash
53
+ pip install paddle
54
+ ```
55
+
56
+ 3. Run test
57
+ ```bash
58
+ cd tests
59
+ python test_saturn_adiabat.py
60
+ ```
61
+
62
+ ## Docker user guide
63
+
64
+ 2. Create a docker container
44
65
  ```bash
45
66
  make up
46
67
  ```
47
68
 
48
- # Terminate a docker container
69
+ 3. Terminate a docker container
49
70
  ```bash
50
71
  make down
51
72
  ```
52
73
 
53
- # Start a docker container
74
+ 4. Start a docker container
54
75
  ```bash
55
76
  make start
56
77
  ```
57
78
 
58
- # Build a new docker image (rarely used)
79
+ 5. Build a new docker image (rarely used)
59
80
  ```bash
60
81
  make build
61
82
  ```
62
83
 
63
- ## For Development
84
+ ## For Developer
85
+
86
+ ### Clone repository
87
+ ```bash
88
+ https://github.com/elijah-mullens/paddle
89
+ ```
90
+
64
91
  ### Cache your github credential
65
92
  ```bash
66
93
  git config credential.helper 'cache --timeout=86400'
67
94
  ```
68
95
 
69
96
  ### Install paddle package
70
- ```bash
71
- pip install paddle
72
- ```
73
97
 
74
98
  ### Install pre-commit hook
75
99
  ```bash
@@ -80,3 +104,7 @@ pip install pre-commit
80
104
  ```bash
81
105
  pre-commit install
82
106
  ```
107
+
108
+ ## Troubleshooting
109
+ 1. If you do not have docker compose
110
+ Remove your current docker installation, it could be docker or docker.io
paddle-1.1.7/README.md ADDED
@@ -0,0 +1,78 @@
1
+ # paddle
2
+ Python Atmospheric Dynamics: Discovering and Learning about Exoplanets. An open-source, user-friendly python version of canoe.
3
+
4
+ ## Install docker and docker-compose plugin
5
+ 1. install docker with compose
6
+ ```bash
7
+ curl -fsSL https://get.docker.com | sudo sh
8
+ ```
9
+
10
+ 1. start docker
11
+ sudo systemctl start docker
12
+
13
+ ## Test package
14
+ 1. Create a python virtual environment
15
+ ```bash
16
+ python -m venv pyenv
17
+ ```
18
+
19
+ 2. Install paddle package
20
+ ```bash
21
+ pip install paddle
22
+ ```
23
+
24
+ 3. Run test
25
+ ```bash
26
+ cd tests
27
+ python test_saturn_adiabat.py
28
+ ```
29
+
30
+ ## Docker user guide
31
+
32
+ 2. Create a docker container
33
+ ```bash
34
+ make up
35
+ ```
36
+
37
+ 3. Terminate a docker container
38
+ ```bash
39
+ make down
40
+ ```
41
+
42
+ 4. Start a docker container
43
+ ```bash
44
+ make start
45
+ ```
46
+
47
+ 5. Build a new docker image (rarely used)
48
+ ```bash
49
+ make build
50
+ ```
51
+
52
+ ## For Developer
53
+
54
+ ### Clone repository
55
+ ```bash
56
+ https://github.com/elijah-mullens/paddle
57
+ ```
58
+
59
+ ### Cache your github credential
60
+ ```bash
61
+ git config credential.helper 'cache --timeout=86400'
62
+ ```
63
+
64
+ ### Install paddle package
65
+
66
+ ### Install pre-commit hook
67
+ ```bash
68
+ pip install pre-commit
69
+ ```
70
+
71
+ ### Install pre-commit hook
72
+ ```bash
73
+ pre-commit install
74
+ ```
75
+
76
+ ## Troubleshooting
77
+ 1. If you do not have docker compose
78
+ Remove your current docker installation, it could be docker or docker.io
@@ -0,0 +1,131 @@
1
+ # syntax=docker/dockerfile:1.7
2
+ ARG CUDA_VER=12.9.1
3
+ ARG UBUNTU_VER=22.04
4
+
5
+ ############################
6
+ # Base CUDA toolchain
7
+ ############################
8
+ FROM ubuntu:${UBUNTU_VER} AS base
9
+
10
+ ENV DEBIAN_FRONTEND=noninteractive \
11
+ TZ=UTC
12
+
13
+ # System deps (C++ toolchain, Python, venv, git, neovim, etc.)
14
+ RUN apt-get update && apt-get install -y --no-install-recommends \
15
+ gosu tini \
16
+ build-essential \
17
+ gcc g++ gfortran \
18
+ ninja-build \
19
+ cmake \
20
+ git curl ca-certificates \
21
+ python3 python3-pip python3-venv python3-dev \
22
+ pkg-config \
23
+ libssl-dev \
24
+ ripgrep fd-find unzip neovim \
25
+ clangd \
26
+ nodejs npm \
27
+ && rm -rf /var/lib/apt/lists/*
28
+
29
+ # Make fd available as `fd` (Ubuntu calls it fdfind)
30
+ RUN update-alternatives --install /usr/bin/fd fd /usr/bin/fdfind 50
31
+
32
+ # Default editor env
33
+ ENV EDITOR=nvim VISUAL=nvim
34
+
35
+ # System-wide git editor default (users can override)
36
+ RUN git config --system core.editor "nvim"
37
+
38
+ # Pre-warm plugins (optional, speeds first start)
39
+ # This runs Neovim headless to install plugins via lazy.nvim.
40
+ RUN nvim --headless "+Lazy! sync" +qa || true
41
+
42
+ ############################
43
+ # Convenient command-line tools
44
+ ############################
45
+
46
+ # ---- after base tooling is installed, before switching USER ----
47
+ # Create a tools dir and put it on PATH
48
+ RUN mkdir -p /opt/tools
49
+ ENV PATH="/opt/tools:${PATH}"
50
+
51
+ # Copy all helper scripts
52
+ COPY docker/scripts/ /opt/tools/
53
+ # Ensure executables
54
+ RUN find /opt/tools -type f -name "*.sh" -exec chmod +x {} \; \
55
+ && for f in /opt/tools/*.sh; do ln -sf "$f" "/usr/local/bin/$(basename "${f%.sh}")"; done
56
+ # The symlink makes command-line tools available (no .sh needed)
57
+
58
+ ############################
59
+ # Configure non-root user and Python venv
60
+ ############################
61
+
62
+ # Python venv in /opt/venv (global, fast, easy)
63
+ RUN python3 -m venv /opt/venv
64
+ ENV VIRTUAL_ENV=/opt/venv
65
+ ENV PATH="/opt/venv/bin:${PATH}"
66
+
67
+ # Upgrade pip/setuptools/wheel early
68
+ RUN pip install --upgrade pip setuptools wheel build
69
+
70
+ # Optional: pin pip resolver behavior and set default index/extra-index if needed
71
+ # COPY docker/pip.conf /etc/pip.conf
72
+
73
+ # Put a base Neovim config in /etc/skel so future users get it,
74
+ # and also install for the existing dev user.
75
+ #RUN mkdir -p /etc/skel/.config/nvim
76
+ #COPY docker/nvim/ /etc/skel/.config/nvim/
77
+ #RUN mkdir -p /home/${USERNAME}/.config/nvim && \
78
+ # cp -r /etc/skel/.config/nvim/* /home/${USERNAME}/.config/nvim/ && \
79
+ # chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.config/nvim
80
+
81
+ ############################
82
+ # Cache Python wheels separately (optional but recommended)
83
+ ############################
84
+ FROM base AS wheels
85
+ WORKDIR /tmp/wheels
86
+ # If you use requirements.txt:
87
+ COPY docker/requirements.txt .
88
+ RUN --mount=type=cache,target=/root/.cache/pip \
89
+ pip wheel -r requirements.txt -w /tmp/wheelhouse
90
+
91
+ # If you use Poetry/pyproject, replace the above with:
92
+ # COPY pyproject.toml poetry.lock ./
93
+ # RUN pip install "poetry>=1.8.0"
94
+ # RUN --mount=type=cache,target=/root/.cache/pip poetry export -f requirements.txt --without-hashes | tee req.txt
95
+ # RUN --mount=type=cache,target=/root/.cache/pip pip wheel -r req.txt -w /tmp/wheelhouse
96
+
97
+ ############################
98
+ # Dev image
99
+ ############################
100
+ FROM base AS dev
101
+ WORKDIR /workspace
102
+
103
+ # Load for login shells
104
+ #RUN printf 'alias vi=nvim\nalias vim=nvim\nexport TERM=xterm-256color\n' >> /home/${USERNAME}/.bashrc
105
+
106
+ # Bring in prebuilt wheels (fast installs)
107
+ COPY --from=wheels /tmp/wheelhouse /tmp/wheelhouse
108
+ COPY docker/requirements.txt /workspace/docker/requirements.txt
109
+
110
+ # Install Python deps from wheels first, then fall back to index
111
+ RUN --mount=type=cache,target=/root/.cache/pip \
112
+ pip install --no-index --find-links=/tmp/wheelhouse -r /workspace/docker/requirements.txt \
113
+ || pip install -r /workspace/docker/requirements.txt
114
+
115
+ # (Optional) CUDA env defaults for many toolchains
116
+ ENV TORCH_CUDA_ARCH_LIST="8.6;8.9;9.0+PTX" \
117
+ CUDA_CACHE_MAXSIZE=2147483647
118
+
119
+ # Put your entrypoint in place
120
+ COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
121
+ RUN chmod +x /usr/local/bin/entrypoint.sh
122
+
123
+ # Keep the workspace owned by the non-root user
124
+ #RUN chown -R ${USERNAME}:${USERNAME} /workspace
125
+ #USER ${USERNAME}
126
+
127
+ #ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
128
+ #CMD ["/bin/bash"]
129
+
130
+ ENTRYPOINT ["/usr/bin/tini","--","/usr/local/bin/entrypoint.sh"]
131
+ CMD ["/bin/bash"]
@@ -0,0 +1,2 @@
1
+ numpy
2
+ scipy
@@ -0,0 +1,17 @@
1
+ services:
2
+ dev:
3
+ build:
4
+ dockerfile: docker/Dockerfile.cuda
5
+ args:
6
+ CUDA_VER: "12.9.1"
7
+ deploy:
8
+ resources:
9
+ reservations:
10
+ devices:
11
+ # Activate this if your system supports GPU
12
+ - capabilities: [gpu]
13
+ volumes:
14
+ # This is your main working directory
15
+ - ${HOME}/work:/work
16
+ # This is where you put your large simulation data
17
+ - ${HOME}/data/:/data
@@ -0,0 +1,20 @@
1
+ services:
2
+ dev:
3
+ image: paddle
4
+ build:
5
+ context: .
6
+ dockerfile: docker/Dockerfile
7
+ args:
8
+ CUDA_VER: "12.9.1"
9
+ UBUNTU_VER: "22.04"
10
+ environment:
11
+ - USERNAME=${USER}
12
+ - USER_UID=${USER_UID}
13
+ - USER_GID=${USER_GID}
14
+ # This is volatile
15
+ # Make sure that you use override.yaml for permanent changes
16
+ working_dir: /work
17
+ tty: true
18
+ stdin_open: true
19
+ ports:
20
+ - "8888:8888"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "paddle"
7
- version = "1.1.5"
7
+ version = "1.1.7"
8
8
  description = "Python Atmospheric Dynamics: Discovery and Learning about Exoplanets. An open-source, user-friendly python frontend of canoe"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -33,7 +33,8 @@ classifiers = [
33
33
  dependencies = [
34
34
  "torch>=2.7.0,<=2.7.1",
35
35
  "kintera>=1.1.5",
36
- "snapy>=0.8.2",
36
+ "snapy>=0.8.1",
37
+ "scipy"
37
38
  ]
38
39
 
39
40
  [project.optional-dependencies]
@@ -4,4 +4,4 @@ from .find_init_params import find_init_params
4
4
  from .evolve_kinetics import evolve_kinetics
5
5
 
6
6
  __all__ = ["setup_profile", "write_profile", "find_init_params", "evolve_kinetics"]
7
- __version__ = "1.1.5"
7
+ __version__ = "1.1.7"
paddle-1.1.5/README.md DELETED
@@ -1,51 +0,0 @@
1
- # paddle
2
- Python Atmospheric Dynamics: Discovering and Learning about Exoplanets. An open-source, user-friendly python version of canoe.
3
-
4
- ## Install docker and docker-compose plugin
5
-
6
-
7
- ## Create a python virtual environment
8
- ```bash
9
- python -m venv pyenv
10
- ```
11
-
12
- # Create a docker container
13
- ```bash
14
- make up
15
- ```
16
-
17
- # Terminate a docker container
18
- ```bash
19
- make down
20
- ```
21
-
22
- # Start a docker container
23
- ```bash
24
- make start
25
- ```
26
-
27
- # Build a new docker image (rarely used)
28
- ```bash
29
- make build
30
- ```
31
-
32
- ## For Development
33
- ### Cache your github credential
34
- ```bash
35
- git config credential.helper 'cache --timeout=86400'
36
- ```
37
-
38
- ### Install paddle package
39
- ```bash
40
- pip install paddle
41
- ```
42
-
43
- ### Install pre-commit hook
44
- ```bash
45
- pip install pre-commit
46
- ```
47
-
48
- ### Install pre-commit hook
49
- ```bash
50
- pre-commit install
51
- ```
File without changes
@@ -1,29 +0,0 @@
1
- services:
2
- dev:
3
- image: paddle
4
- build:
5
- context: .
6
- dockerfile: docker/Dockerfile
7
- args:
8
- CUDA_VER: "12.9.1"
9
- UBUNTU_VER: "22.04"
10
- environment:
11
- - USERNAME=${USER}
12
- - USER_UID=${USER_UID}
13
- - USER_GID=${USER_GID}
14
- deploy:
15
- resources:
16
- reservations:
17
- devices:
18
- # If your system does not have gpu, remove it from the []
19
- - capabilities: [gpu]
20
- volumes:
21
- # This is your main working directory
22
- - ${HOME}/projects:/projects
23
- # This is where you put your large simulation data
24
- - ${HOME}/data/:/data
25
- working_dir: /projects
26
- tty: true
27
- stdin_open: true
28
- ports:
29
- - "8888:8888"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes