pycellid 0.1__tar.gz → 0.2.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,29 @@
1
+ PyCellID Changelog
2
+ ===================
3
+
4
+
5
+ Version (0.2.0)
6
+ ------------------
7
+
8
+ - Packaging configuration moved to ``pyproject.toml`` (PEP 621);
9
+ ``setup.py`` and ``requirements/`` removed. Development dependencies
10
+ are now dependency groups (PEP 735): ``pip install -e . --group dev``.
11
+ - Supported Python versions: 3.11 to 3.15 (3.8, 3.9 and 3.10 dropped).
12
+ - Minimum dependencies: attrs 22.2, matplotlib 3.7, numpy 1.24, pandas 2.0.
13
+ - CI rewritten: Python 3.11 to 3.15 matrix without fail-fast, weekly
14
+ scheduled run and manual trigger; style, manifest, coverage and docs
15
+ checked in a separate job. Read the Docs moved to Ubuntu 24.04 and
16
+ Python 3.12 with unpinned documentation dependencies.
17
+ - Releases are published to PyPI by GitHub Actions with Trusted
18
+ Publishing (no API tokens); manual runs publish to TestPyPI.
19
+ - ``make_df``: avoid ``inplace=True`` in ``set_index`` (deprecated in
20
+ pandas 3.1, to be removed in pandas 4).
21
+
22
+ Version 0.1.1
23
+ -------------
24
+
25
+ - Fix ``read_df`` with pandas >= 2.0: column-name normalization replaced
26
+ every character with ``_`` (regex ``"."`` matched any character).
27
+ - Fix spurious ``ChainedAssignmentError`` warning in ``CellData.__setitem__``
28
+ under pandas copy-on-write.
29
+ - Add regression test for column-name normalization.
@@ -0,0 +1,5 @@
1
+ include LICENSE
2
+ include README.md
3
+ include CHANGELOG.rst
4
+ include pyproject.toml
5
+ recursive-include pycellid *.py
@@ -1,34 +1,46 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pycellid
3
- Version: 0.1
4
- Summary: Functions to analyze single-cell
5
- Home-page: https://github.com/pyCellID/pyCellID
6
- Author: Clemente, José
7
- Author-email: clemente.jac@gmail.com
8
- License: The MIT License
3
+ Version: 0.2.0
4
+ Summary: Functions to analyze Cell-ID single-cell cytometry data
5
+ Author: Juan David Ferreira, Víctor San Martín
6
+ Author-email: "José A. Clemente" <clemente.jac@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/pyCellID/pyCellID
9
+ Project-URL: Documentation, https://pycellid.readthedocs.io
10
+ Project-URL: Issues, https://github.com/pyCellID/pyCellID/issues
11
+ Project-URL: Changelog, https://github.com/pyCellID/pyCellID/blob/main/CHANGELOG.rst
9
12
  Keywords: pycellid,cytometry,microscopy,cellid,vcellid
10
- Platform: UNKNOWN
11
13
  Classifier: Development Status :: 4 - Beta
12
14
  Classifier: Intended Audience :: Education
13
15
  Classifier: Intended Audience :: Science/Research
14
16
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
17
  Classifier: Operating System :: OS Independent
17
- Classifier: Programming Language :: Python :: 3.8
18
- Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Programming Language :: Python :: 3.15
19
25
  Classifier: Programming Language :: Python :: Implementation :: CPython
20
26
  Classifier: Topic :: Scientific/Engineering
21
- Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
27
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
22
28
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
- Requires-Python: >= 3.8
29
+ Requires-Python: >=3.11
24
30
  Description-Content-Type: text/markdown
25
31
  License-File: LICENSE
32
+ Requires-Dist: attrs>=22.2
33
+ Requires-Dist: matplotlib>=3.7
34
+ Requires-Dist: numpy>=1.24
35
+ Requires-Dist: pandas>=2.0
36
+ Dynamic: license-file
26
37
 
27
38
  ![logo](https://raw.githubusercontent.com/pyCellID/pyCellID/clementejose/docs/logo/PycellID_logo.jpg)
28
39
 
29
40
  # PyCellID
30
41
 
31
- [![Build status](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml/badge.svg)](https://github.com/pyCellID/pyCellID/actions)
42
+ [![Build status](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml)
43
+ [![PyPI](https://img.shields.io/pypi/v/pycellid)](https://pypi.org/project/pycellid/)
32
44
  [![codecov](https://codecov.io/gh/pyCellID/pyCellID/branch/main/graph/badge.svg?token=SXFRA6KCLV)](https://codecov.io/gh/pyCellID/pyCellID)
33
45
  [![Documentation Status](https://readthedocs.org/projects/pycellid/badge/?version=latest)](https://pycellid.readthedocs.io/en/latest/?badge=latest)
34
46
  [![issues](https://img.shields.io/github/issues/pyCellID/pyCellID)](https://img.shields.io/github/issues/pyCellID/pyCellID)
@@ -48,14 +60,14 @@ We hope to integrate tools for image segmentation in future releases. In that wa
48
60
 
49
61
  ## Requirements
50
62
 
51
- Python 3.8+
63
+ Python 3.11+
52
64
 
53
65
  ## Dependecies for this project.
54
66
 
55
- - [attrs(>=21.1.0)](https://www.attrs.org/en/stable/) for building the backend.
56
- - [matplotlib(>=3.4.0)](https://matplotlib.org/) for plots management
57
- - [pandas(>=1.3.0)](https://pandas.pydata.org/) for panel and dashboard management.
58
- - [numpy(>=1.21.0)](https://numpy.org/) for numerical management.
67
+ - [attrs(>=22.2)](https://www.attrs.org/en/stable/) for building the backend.
68
+ - [matplotlib(>=3.7)](https://matplotlib.org/) for plots management
69
+ - [pandas(>=2.0)](https://pandas.pydata.org/) for panel and dashboard management.
70
+ - [numpy(>=1.24)](https://numpy.org/) for numerical management.
59
71
 
60
72
  ## Installation
61
73
 
@@ -74,8 +86,8 @@ For development, clone the [official github repository](https://github.com/pyCel
74
86
  $ cd pyCellID
75
87
  $ python3 -m venv venv
76
88
  $ source venv/bin/activate
77
- $ pip install -e .
78
- $ pip install -r requirements/dev.txt
89
+ $ pip install --upgrade pip
90
+ $ pip install -e . --group dev
79
91
  ```
80
92
 
81
93
  Run the tests with pytest:
@@ -125,5 +137,3 @@ We have got inspiration from [rcell and rcell2](https://github.com/darksideofthe
125
137
 
126
138
  This project is licensed under the MIT License (see the
127
139
  [LICENSE](https://github.com/pyCellID/pyCellID/blob/main/LICENSE) file for details).
128
-
129
-
@@ -2,7 +2,8 @@
2
2
 
3
3
  # PyCellID
4
4
 
5
- [![Build status](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml/badge.svg)](https://github.com/pyCellID/pyCellID/actions)
5
+ [![Build status](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml)
6
+ [![PyPI](https://img.shields.io/pypi/v/pycellid)](https://pypi.org/project/pycellid/)
6
7
  [![codecov](https://codecov.io/gh/pyCellID/pyCellID/branch/main/graph/badge.svg?token=SXFRA6KCLV)](https://codecov.io/gh/pyCellID/pyCellID)
7
8
  [![Documentation Status](https://readthedocs.org/projects/pycellid/badge/?version=latest)](https://pycellid.readthedocs.io/en/latest/?badge=latest)
8
9
  [![issues](https://img.shields.io/github/issues/pyCellID/pyCellID)](https://img.shields.io/github/issues/pyCellID/pyCellID)
@@ -22,14 +23,14 @@ We hope to integrate tools for image segmentation in future releases. In that wa
22
23
 
23
24
  ## Requirements
24
25
 
25
- Python 3.8+
26
+ Python 3.11+
26
27
 
27
28
  ## Dependecies for this project.
28
29
 
29
- - [attrs(>=21.1.0)](https://www.attrs.org/en/stable/) for building the backend.
30
- - [matplotlib(>=3.4.0)](https://matplotlib.org/) for plots management
31
- - [pandas(>=1.3.0)](https://pandas.pydata.org/) for panel and dashboard management.
32
- - [numpy(>=1.21.0)](https://numpy.org/) for numerical management.
30
+ - [attrs(>=22.2)](https://www.attrs.org/en/stable/) for building the backend.
31
+ - [matplotlib(>=3.7)](https://matplotlib.org/) for plots management
32
+ - [pandas(>=2.0)](https://pandas.pydata.org/) for panel and dashboard management.
33
+ - [numpy(>=1.24)](https://numpy.org/) for numerical management.
33
34
 
34
35
  ## Installation
35
36
 
@@ -48,8 +49,8 @@ For development, clone the [official github repository](https://github.com/pyCel
48
49
  $ cd pyCellID
49
50
  $ python3 -m venv venv
50
51
  $ source venv/bin/activate
51
- $ pip install -e .
52
- $ pip install -r requirements/dev.txt
52
+ $ pip install --upgrade pip
53
+ $ pip install -e . --group dev
53
54
  ```
54
55
 
55
56
  Run the tests with pytest:
@@ -25,7 +25,7 @@ An extension that analyze Cell-ID single-cell.
25
25
  # META
26
26
  # =============================================================================
27
27
 
28
- __version__ = "0.1"
28
+ __version__ = "0.2.0"
29
29
 
30
30
  # =============================================================================
31
31
  # IMPORTS
@@ -182,7 +182,7 @@ class CellData(object):
182
182
 
183
183
  def __setitem__(self, idx, values):
184
184
  """Call to implement assignment to ``self[key]``."""
185
- return self._df.__setitem__(idx, values)
185
+ self._df[idx] = values
186
186
 
187
187
  def __iter__(self):
188
188
  """Call when an iterator is required for a container.
@@ -69,7 +69,7 @@ def read_df(path_file):
69
69
  # Remove spaces in headers ' x.pos ' produced from cellid
70
70
  df.columns = df.columns.str.strip()
71
71
  # Change name delimiter "."" to "_"
72
- df.columns = df.columns.str.replace(".", "_", regex=True)
72
+ df.columns = df.columns.str.replace(".", "_", regex=False)
73
73
  return df
74
74
 
75
75
 
@@ -161,7 +161,7 @@ def _make_cols_chan(df, df_map):
161
161
 
162
162
  # Remove redundant values ​​from CellID.
163
163
  df_morf = df[df.flag == 0][morf]
164
- df_morf.set_index(["ucid", "t_frame"], inplace=True)
164
+ df_morf = df_morf.set_index(["ucid", "t_frame"])
165
165
  # Merge df_flag y df_morf
166
166
  df = pd.merge(df_morf, df_flag, on=["ucid", "t_frame"], how="outer")
167
167
 
@@ -1,34 +1,46 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pycellid
3
- Version: 0.1
4
- Summary: Functions to analyze single-cell
5
- Home-page: https://github.com/pyCellID/pyCellID
6
- Author: Clemente, José
7
- Author-email: clemente.jac@gmail.com
8
- License: The MIT License
3
+ Version: 0.2.0
4
+ Summary: Functions to analyze Cell-ID single-cell cytometry data
5
+ Author: Juan David Ferreira, Víctor San Martín
6
+ Author-email: "José A. Clemente" <clemente.jac@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/pyCellID/pyCellID
9
+ Project-URL: Documentation, https://pycellid.readthedocs.io
10
+ Project-URL: Issues, https://github.com/pyCellID/pyCellID/issues
11
+ Project-URL: Changelog, https://github.com/pyCellID/pyCellID/blob/main/CHANGELOG.rst
9
12
  Keywords: pycellid,cytometry,microscopy,cellid,vcellid
10
- Platform: UNKNOWN
11
13
  Classifier: Development Status :: 4 - Beta
12
14
  Classifier: Intended Audience :: Education
13
15
  Classifier: Intended Audience :: Science/Research
14
16
  Classifier: Intended Audience :: Developers
15
- Classifier: License :: OSI Approved :: MIT License
16
17
  Classifier: Operating System :: OS Independent
17
- Classifier: Programming Language :: Python :: 3.8
18
- Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Programming Language :: Python :: 3.15
19
25
  Classifier: Programming Language :: Python :: Implementation :: CPython
20
26
  Classifier: Topic :: Scientific/Engineering
21
- Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
27
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
22
28
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
- Requires-Python: >= 3.8
29
+ Requires-Python: >=3.11
24
30
  Description-Content-Type: text/markdown
25
31
  License-File: LICENSE
32
+ Requires-Dist: attrs>=22.2
33
+ Requires-Dist: matplotlib>=3.7
34
+ Requires-Dist: numpy>=1.24
35
+ Requires-Dist: pandas>=2.0
36
+ Dynamic: license-file
26
37
 
27
38
  ![logo](https://raw.githubusercontent.com/pyCellID/pyCellID/clementejose/docs/logo/PycellID_logo.jpg)
28
39
 
29
40
  # PyCellID
30
41
 
31
- [![Build status](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml/badge.svg)](https://github.com/pyCellID/pyCellID/actions)
42
+ [![Build status](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/pyCellID/pyCellID/actions/workflows/CI.yml)
43
+ [![PyPI](https://img.shields.io/pypi/v/pycellid)](https://pypi.org/project/pycellid/)
32
44
  [![codecov](https://codecov.io/gh/pyCellID/pyCellID/branch/main/graph/badge.svg?token=SXFRA6KCLV)](https://codecov.io/gh/pyCellID/pyCellID)
33
45
  [![Documentation Status](https://readthedocs.org/projects/pycellid/badge/?version=latest)](https://pycellid.readthedocs.io/en/latest/?badge=latest)
34
46
  [![issues](https://img.shields.io/github/issues/pyCellID/pyCellID)](https://img.shields.io/github/issues/pyCellID/pyCellID)
@@ -48,14 +60,14 @@ We hope to integrate tools for image segmentation in future releases. In that wa
48
60
 
49
61
  ## Requirements
50
62
 
51
- Python 3.8+
63
+ Python 3.11+
52
64
 
53
65
  ## Dependecies for this project.
54
66
 
55
- - [attrs(>=21.1.0)](https://www.attrs.org/en/stable/) for building the backend.
56
- - [matplotlib(>=3.4.0)](https://matplotlib.org/) for plots management
57
- - [pandas(>=1.3.0)](https://pandas.pydata.org/) for panel and dashboard management.
58
- - [numpy(>=1.21.0)](https://numpy.org/) for numerical management.
67
+ - [attrs(>=22.2)](https://www.attrs.org/en/stable/) for building the backend.
68
+ - [matplotlib(>=3.7)](https://matplotlib.org/) for plots management
69
+ - [pandas(>=2.0)](https://pandas.pydata.org/) for panel and dashboard management.
70
+ - [numpy(>=1.24)](https://numpy.org/) for numerical management.
59
71
 
60
72
  ## Installation
61
73
 
@@ -74,8 +86,8 @@ For development, clone the [official github repository](https://github.com/pyCel
74
86
  $ cd pyCellID
75
87
  $ python3 -m venv venv
76
88
  $ source venv/bin/activate
77
- $ pip install -e .
78
- $ pip install -r requirements/dev.txt
89
+ $ pip install --upgrade pip
90
+ $ pip install -e . --group dev
79
91
  ```
80
92
 
81
93
  Run the tests with pytest:
@@ -125,5 +137,3 @@ We have got inspiration from [rcell and rcell2](https://github.com/darksideofthe
125
137
 
126
138
  This project is licensed under the MIT License (see the
127
139
  [LICENSE](https://github.com/pyCellID/pyCellID/blob/main/LICENSE) file for details).
128
-
129
-
@@ -2,7 +2,7 @@ CHANGELOG.rst
2
2
  LICENSE
3
3
  MANIFEST.in
4
4
  README.md
5
- setup.py
5
+ pyproject.toml
6
6
  pycellid/__init__.py
7
7
  pycellid/core.py
8
8
  pycellid/images.py
@@ -11,4 +11,7 @@ pycellid.egg-info/PKG-INFO
11
11
  pycellid.egg-info/SOURCES.txt
12
12
  pycellid.egg-info/dependency_links.txt
13
13
  pycellid.egg-info/requires.txt
14
- pycellid.egg-info/top_level.txt
14
+ pycellid.egg-info/top_level.txt
15
+ tests/test_core.py
16
+ tests/test_images.py
17
+ tests/test_io.py
@@ -0,0 +1,4 @@
1
+ attrs>=22.2
2
+ matplotlib>=3.7
3
+ numpy>=1.24
4
+ pandas>=2.0
@@ -0,0 +1,108 @@
1
+ # =============================================================================
2
+ # BUILD SYSTEM: qué herramienta construye el paquete
3
+ # =============================================================================
4
+
5
+ [build-system]
6
+ requires = ["setuptools>=77"]
7
+ build-backend = "setuptools.build_meta"
8
+
9
+ # =============================================================================
10
+ # PROJECT: metadata del paquete (PEP 621)
11
+ # =============================================================================
12
+
13
+ [project]
14
+ name = "pycellid"
15
+ dynamic = ["version"]
16
+ description = "Functions to analyze Cell-ID single-cell cytometry data"
17
+ readme = "README.md"
18
+ license = "MIT"
19
+ license-files = ["LICENSE"]
20
+ requires-python = ">=3.11"
21
+ authors = [
22
+ { name = "José A. Clemente", email = "clemente.jac@gmail.com" },
23
+ { name = "Juan David Ferreira" },
24
+ { name = "Víctor San Martín" },
25
+ ]
26
+ keywords = ["pycellid", "cytometry", "microscopy", "cellid", "vcellid"]
27
+ classifiers = [
28
+ "Development Status :: 4 - Beta",
29
+ "Intended Audience :: Education",
30
+ "Intended Audience :: Science/Research",
31
+ "Intended Audience :: Developers",
32
+ "Operating System :: OS Independent",
33
+ "Programming Language :: Python :: 3",
34
+ "Programming Language :: Python :: 3 :: Only",
35
+ "Programming Language :: Python :: 3.11",
36
+ "Programming Language :: Python :: 3.12",
37
+ "Programming Language :: Python :: 3.13",
38
+ "Programming Language :: Python :: 3.14",
39
+ "Programming Language :: Python :: 3.15",
40
+ "Programming Language :: Python :: Implementation :: CPython",
41
+ "Topic :: Scientific/Engineering",
42
+ "Topic :: Scientific/Engineering :: Bio-Informatics",
43
+ "Topic :: Software Development :: Libraries :: Python Modules",
44
+ ]
45
+ dependencies = [
46
+ "attrs>=22.2",
47
+ "matplotlib>=3.7",
48
+ "numpy>=1.24",
49
+ "pandas>=2.0",
50
+ ]
51
+
52
+ [project.urls]
53
+ Homepage = "https://github.com/pyCellID/pyCellID"
54
+ Documentation = "https://pycellid.readthedocs.io"
55
+ Issues = "https://github.com/pyCellID/pyCellID/issues"
56
+ Changelog = "https://github.com/pyCellID/pyCellID/blob/main/CHANGELOG.rst"
57
+
58
+ # =============================================================================
59
+ # DEPENDENCY GROUPS: dependencias para desarrollar (PEP 735)
60
+ # No se publican en PyPI ni las instala el usuario final.
61
+ # =============================================================================
62
+
63
+ [dependency-groups]
64
+ test = ["pytest>=8", "pytest-cov"]
65
+ style = ["flake8", "flake8-import-order", "flake8-builtins", "pep8-naming"]
66
+ docstyle = ["pydocstyle[toml]"]
67
+ dev = [
68
+ { include-group = "test" },
69
+ { include-group = "style" },
70
+ { include-group = "docstyle" },
71
+ "check-manifest",
72
+ "build",
73
+ "twine",
74
+ "tox>=4.22",
75
+ ]
76
+
77
+ # =============================================================================
78
+ # SETUPTOOLS: configuración específica de la herramienta de build
79
+ # =============================================================================
80
+
81
+ [tool.setuptools]
82
+ packages = ["pycellid"]
83
+
84
+ [tool.setuptools.dynamic]
85
+ version = { attr = "pycellid.__version__" }
86
+
87
+ # =============================================================================
88
+ # OTRAS HERRAMIENTAS
89
+ # =============================================================================
90
+
91
+ [tool.black]
92
+ line-length = 79
93
+ target-version = ["py311"]
94
+
95
+ [tool.pytest.ini_options]
96
+ testpaths = ["tests"]
97
+
98
+ [tool.check-manifest]
99
+ # Archivos versionados en git que a propósito NO van en el sdist
100
+ ignore = [
101
+ ".github/**",
102
+ ".gitignore",
103
+ ".readthedocs.yaml",
104
+ "docs/**",
105
+ "samples_cellid/**",
106
+ "tests/**",
107
+ "tox.ini",
108
+ ]