PyPartMC 1.3.0__cp310-cp310-manylinux_2_24_x86_64.whl → 1.3.2__cp310-cp310-manylinux_2_24_x86_64.whl

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.

Potentially problematic release.


This version of PyPartMC might be problematic. Click here for more details.

PyPartMC/__init__.py CHANGED
@@ -1,3 +1,7 @@
1
+ """
2
+ .. include::../README.md
3
+ """
4
+
1
5
  # pylint: disable=invalid-name,wrong-import-position
2
6
  import os
3
7
  from collections import namedtuple
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPartMC
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Summary: Python interface to PartMC
5
5
  Author: PyPartMC team (see https://github.com/open-atmos/PyPartMC/graphs/contributors)
6
6
  Author-email: nriemer@illinois.edu
@@ -29,6 +29,7 @@ The Python API can facilitate using PartMC from other environments - see, e.g.,
29
29
 
30
30
  For an outline of the project, rationale, architecture, and features, refer to: [D'Aquino et al., 2024 (SoftwareX)](https://doi.org/10.1016/j.softx.2023.101613) (please cite if PyPartMC is used in your research).
31
31
  For a list of talks and other relevant resources, please see [project Wiki](https://github.com/open-atmos/PyPartMC/wiki/).
32
+ If interested in contributing to PyPartMC, please have a look a the [notes for developers](https://github.com/open-atmos/PyPartMC/tree/main/CONTRIBUTING.md).
32
33
 
33
34
  [![US Funding](https://img.shields.io/static/v1?label=US%20DOE%20Funding%20by&color=267c32&message=ASR&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAQCAMAAAA25D/gAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAASFBMVEVOTXyyIjRDQnNZWINZWITtzdFUU4BVVIFVVYHWiZM9PG/KZnNXVoJaWYT67/FKSXhgX4hgX4lcW4VbWoX03uHQeIN2VXj///9pZChlAAAAAWJLR0QXC9aYjwAAAAd0SU1FB+EICRMGJV+KCCQAAABdSURBVBjThdBJDoAgEETRkkkZBBX0/kd11QTTpH1/STqpAAwWBkobSlkGbt0o5xmEfqxDZJB2Q6XMoBwnVSbTylWp0hi42rmbwTOYPDfR5Kc+07IIUQQvghX9THsBHcES8/SiF0kAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMDgtMDlUMTk6MDY6MzcrMDA6MDCX1tBgAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTA4LTA5VDE5OjA2OjM3KzAwOjAw5oto3AAAAABJRU5ErkJggg==)](https://asr.science.energy.gov/) [![PL Funding](https://img.shields.io/static/v1?label=PL%20Funding%20by&color=d21132&message=NCN&logoWidth=25&logo=image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAABmJLR0QA/wD/AP+gvaeTAAAAKUlEQVQ4jWP8////fwYqAiZqGjZqIHUAy4dJS6lqIOMdEZvRZDPcDQQAb3cIaY1Sbi4AAAAASUVORK5CYII=)](https://www.ncn.gov.pl/?language=en)
34
35
 
@@ -246,61 +247,6 @@ fprintf('%g # kg/m3\n', dot([masses{:}], [num_concs{:}]))
246
247
 
247
248
  PyPartMC is used within the [test workflow of the PySDM project](https://github.com/atmos-cloud-sim-uj/PySDM/tree/main/tests/smoke_tests/box/partmc).
248
249
 
249
- ## Implementation outline
250
-
251
- - PyPartMC is written in C++, Fortran and uses [pybind11](https://pybind11.readthedocs.io/en/stable/) and [CMake](https://cmake.org/).
252
- - JSON support is handled with [nlohmann::json](https://github.com/nlohmann/json) and [pybind11_json](https://github.com/pybind/pybind11_json)
253
- - PartMC and selected parts of SUNDIALS are statically linked (and compiled in during `pip install` or `python -m build`)
254
- - C (SUNDIALS, netCDF), C++ (pybind11, ...) and Fortran (PartMC, CAMP, netCDF-fortran) dependencies are linked through [git submodules](https://github.com/open-atmos/PyPartMC/blob/main/.gitmodules)
255
- - MOSAIC dependency is optionally linked through setting the environmental variable `MOSAIC_HOME`
256
- - a [drop-in replacement of the PartMC spec file routines](https://github.com/open-atmos/PyPartMC/blob/main/src/spec_file_pypartmc.F90) is used for i/o from/to JSON
257
-
258
- ## Implementation architecture
259
-
260
- ```mermaid
261
- flowchart TD
262
- subgraph J ["Julia"]
263
- julia_user_code["Julia user code"] --> PyCall.jl
264
- end
265
- subgraph M ["Matlab"]
266
- matlab_user_code["Matlab user code"] --> matlab_python["Matlab built-in\nPython interface"]
267
- end
268
- subgraph P ["Python"]
269
- python_user_code -.-> NumPy
270
- python_user_code["Python user code"] ---> PyPartMC["pubind11-generated\nPyPartMC module"]
271
- matlab_python --> PyPartMC
272
- PyCall.jl --> PyPartMC
273
- end
274
- subgraph Cpp ["C++"]
275
- cpp_user_code["C++ user code"] ----> ppmc_cpp
276
- PyPartMC --> ppmc_cpp["PyPartMC-C++"]
277
- ppmc_cpp --> pybind11_json
278
- pybind11_json ---> nlohmann::JSON
279
- spec_file_pypartmc_cpp --> nlohmann::JSON
280
- end
281
- subgraph C ["C"]
282
- spec_file_pypartmc_c --> spec_file_pypartmc_cpp["SpecFile-C++"]
283
- ppmc_cpp --> ppmc_c["PyPartMC-C"]
284
- netCDF-C
285
- SUNDIALS
286
- camp_c["CAMP C code"]
287
- end
288
- subgraph Fortran ["Fortran"]
289
- PartMC -....-> MOSAIC
290
- ppmc_c --> ppmc_f["PyPartMC-F"]
291
- ppmc_f ---> PartMC
292
- PartMC --> netCDF-F
293
- netCDF-F --> netCDF-C
294
- PartMC --> SUNDIALS
295
- PartMC ---> camp_f
296
- camp_f["CAMP"] --> camp_c
297
- PartMC ----> spec_file_pypartmc_f[SpecFile-F]
298
- spec_file_pypartmc_f --> spec_file_pypartmc_c["SpecFile-C"]
299
- end
300
-
301
- style PartMC fill:#7ae7ff,stroke-width:2px,color:#2B2B2B
302
- ```
303
-
304
250
  ## FAQ
305
251
  - Q: How to install PyPartMC with MOSAIC enabled?
306
252
  A: Installation can be done using `pip`, however, `pip` needs to be instructed not to use binary packages available at pypi.org but rather to compile from source (pip will download the source from pip.org), and the path to compiled MOSAIC library needs to be provided at compile-time; the following command should convey it:
@@ -342,18 +288,6 @@ Could not find NC_M4 using the following names: m4, m4.exe
342
288
  ```
343
289
  Try installing `m4` (e.g., using [MSYS2](https://packages.msys2.org/package/m4?repo=msys&variant=x86_64) on Windows).
344
290
 
345
- ## Notes for developers
346
- #### How to debug
347
- ```sh
348
- git clone --recursive git+https://github.com/open-atmos/PyPartMC.git
349
- cd PyPartMC
350
- DEBUG=1 VERBOSE=1 pip --verbose install -e .
351
- gdb python
352
- (gdb) run -m pytest -s -vv -We -p no:unraisableexception tests
353
- ```
354
- #### Pre-commit hooks
355
- PyPartMC codebase benefits from Pylint, Black and isort code analysis (which are all part of the CI workflows where we also use pre-commit hooks. The pre-commit hooks can be run locally, and then the resultant changes need to be staged before committing. To set up the hooks locally, install pre-commit via `pip install pre-commit` and set up the git hooks via `pre-commit install` (this needs to be done every time you clone the project). To run all pre-commit hooks, run `pre-commit run --all-files`. The `.pre-commit-config.yaml` file can be modified in case new hooks are to be added or existing ones need to be altered.
356
-
357
291
  ## Credits
358
292
 
359
293
  #### PyPartMC:
@@ -0,0 +1,9 @@
1
+ _PyPartMC.cpython-310-x86_64-linux-gnu.so,sha256=ENF92p8oLP01yn5cewuW0Odfzb-o1jHb9pCItubXY5E,8830721
2
+ PyPartMC.libs/libquadmath-0605fa11.so.0.0.0,sha256=i5xERc8gmYq5yeinkZ30D3XByxbJvk5b0ZbqJgY9HSM,259905
3
+ PyPartMC.libs/libgfortran-bbf01bbb.so.3.0.0,sha256=JkSfevfj6UZk7ssP4RA6_0xOmRz3P0A67N5cqwjT-os,1283921
4
+ PyPartMC/__init__.py,sha256=VAqwePpJZEFJ7YieM1GbUvfluRhUyWXciP89pY9xIH4,2217
5
+ PyPartMC-1.3.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
6
+ PyPartMC-1.3.2.dist-info/WHEEL,sha256=ayu90cRHz70GujSTvu_19vagXq6arIeKRriEW8mdwyA,114
7
+ PyPartMC-1.3.2.dist-info/top_level.txt,sha256=PJxy22pTnxcBhqrb6r4AIL32rkxA61gzw7ohlzybgSM,19
8
+ PyPartMC-1.3.2.dist-info/RECORD,,
9
+ PyPartMC-1.3.2.dist-info/METADATA,sha256=X3e_Wg-0Upv6x3yCWlaMKbbFH3EdFNr1asTwgv3Saqk,19014
Binary file
@@ -1,9 +0,0 @@
1
- _PyPartMC.cpython-310-x86_64-linux-gnu.so,sha256=f6kb900pttNJVOO8zH7ZNtNT3oD5b3_a4GS8Q_dexkU,8826537
2
- PyPartMC/__init__.py,sha256=no2FkFFPQZIX2cF5iXaDDXGpqv3zOZX9Tdq0-EfxMf8,2183
3
- PyPartMC-1.3.0.dist-info/WHEEL,sha256=ayu90cRHz70GujSTvu_19vagXq6arIeKRriEW8mdwyA,114
4
- PyPartMC-1.3.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
5
- PyPartMC-1.3.0.dist-info/top_level.txt,sha256=PJxy22pTnxcBhqrb6r4AIL32rkxA61gzw7ohlzybgSM,19
6
- PyPartMC-1.3.0.dist-info/RECORD,,
7
- PyPartMC-1.3.0.dist-info/METADATA,sha256=wAT32m9M3gKJqgGKuirNFjfG6BCH4QYNE3G_9Sc_kJg,22103
8
- PyPartMC.libs/libquadmath-0605fa11.so.0.0.0,sha256=i5xERc8gmYq5yeinkZ30D3XByxbJvk5b0ZbqJgY9HSM,259905
9
- PyPartMC.libs/libgfortran-bbf01bbb.so.3.0.0,sha256=JkSfevfj6UZk7ssP4RA6_0xOmRz3P0A67N5cqwjT-os,1283921