careamics 0.0.1__py3-none-any.whl → 0.1.0rc2__py3-none-any.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 careamics might be problematic. Click here for more details.

Files changed (48) hide show
  1. careamics/__init__.py +7 -1
  2. careamics/bioimage/__init__.py +15 -0
  3. careamics/bioimage/docs/Noise2Void.md +5 -0
  4. careamics/bioimage/docs/__init__.py +1 -0
  5. careamics/bioimage/io.py +182 -0
  6. careamics/bioimage/rdf.py +105 -0
  7. careamics/config/__init__.py +11 -0
  8. careamics/config/algorithm.py +231 -0
  9. careamics/config/config.py +297 -0
  10. careamics/config/config_filter.py +44 -0
  11. careamics/config/data.py +194 -0
  12. careamics/config/torch_optim.py +118 -0
  13. careamics/config/training.py +534 -0
  14. careamics/dataset/__init__.py +1 -0
  15. careamics/dataset/dataset_utils.py +111 -0
  16. careamics/dataset/extraction_strategy.py +21 -0
  17. careamics/dataset/in_memory_dataset.py +202 -0
  18. careamics/dataset/patching.py +492 -0
  19. careamics/dataset/prepare_dataset.py +175 -0
  20. careamics/dataset/tiff_dataset.py +212 -0
  21. careamics/engine.py +1014 -0
  22. careamics/losses/__init__.py +4 -0
  23. careamics/losses/loss_factory.py +38 -0
  24. careamics/losses/losses.py +34 -0
  25. careamics/manipulation/__init__.py +4 -0
  26. careamics/manipulation/pixel_manipulation.py +158 -0
  27. careamics/models/__init__.py +4 -0
  28. careamics/models/layers.py +152 -0
  29. careamics/models/model_factory.py +251 -0
  30. careamics/models/unet.py +322 -0
  31. careamics/prediction/__init__.py +9 -0
  32. careamics/prediction/prediction_utils.py +106 -0
  33. careamics/utils/__init__.py +20 -0
  34. careamics/utils/ascii_logo.txt +9 -0
  35. careamics/utils/augment.py +65 -0
  36. careamics/utils/context.py +45 -0
  37. careamics/utils/logging.py +321 -0
  38. careamics/utils/metrics.py +160 -0
  39. careamics/utils/normalization.py +55 -0
  40. careamics/utils/torch_utils.py +89 -0
  41. careamics/utils/validators.py +170 -0
  42. careamics/utils/wandb.py +121 -0
  43. careamics-0.1.0rc2.dist-info/METADATA +81 -0
  44. careamics-0.1.0rc2.dist-info/RECORD +47 -0
  45. {careamics-0.0.1.dist-info → careamics-0.1.0rc2.dist-info}/WHEEL +1 -1
  46. {careamics-0.0.1.dist-info → careamics-0.1.0rc2.dist-info}/licenses/LICENSE +1 -1
  47. careamics-0.0.1.dist-info/METADATA +0 -46
  48. careamics-0.0.1.dist-info/RECORD +0 -6
@@ -0,0 +1,170 @@
1
+ """
2
+ Validator functions.
3
+
4
+ These functions are used to validate dimensions and axes of inputs.
5
+ """
6
+ from typing import List
7
+
8
+ import numpy as np
9
+
10
+ AXES = "STCZYX"
11
+
12
+
13
+ def check_axes_validity(axes: str) -> None:
14
+ """
15
+ Sanity check on axes.
16
+
17
+ The constraints on the axes are the following:
18
+ - must be a combination of 'STCZYX'
19
+ - must not contain duplicates
20
+ - must contain at least 2 contiguous axes: X and Y
21
+ - must contain at most 4 axes
22
+ - cannot contain both S and T axes
23
+ - C is currently not allowed
24
+
25
+ Parameters
26
+ ----------
27
+ axes : str
28
+ Axes to validate.
29
+ """
30
+ _axes = axes.upper()
31
+
32
+ # Minimum is 2 (XY) and maximum is 4 (TZYX)
33
+ if len(_axes) < 2 or len(_axes) > 4:
34
+ raise ValueError(
35
+ f"Invalid axes {axes}. Must contain at least 2 and at most 4 axes."
36
+ )
37
+
38
+ # all characters must be in REF_AXES = 'STCZYX'
39
+ if not all(s in AXES for s in _axes):
40
+ raise ValueError(f"Invalid axes {axes}. Must be a combination of {AXES}.")
41
+
42
+ # check for repeating characters
43
+ for i, s in enumerate(_axes):
44
+ if i != _axes.rfind(s):
45
+ raise ValueError(
46
+ f"Invalid axes {axes}. Cannot contain duplicate axes"
47
+ f" (got multiple {axes[i]})."
48
+ )
49
+
50
+ # currently no implementation for C
51
+ if "C" in _axes:
52
+ raise NotImplementedError("Currently, C axis is not supported.")
53
+
54
+ # prevent S and T axes at the same time
55
+ if "T" in _axes and "S" in _axes:
56
+ raise NotImplementedError(
57
+ f"Invalid axes {axes}. Cannot contain both S and T axes."
58
+ )
59
+
60
+ # prior: X and Y contiguous (#FancyComments)
61
+ # right now the next check is invalidating this, but in the future, we might
62
+ # allow random order of axes (or at least XY and YX)
63
+ if "XY" not in _axes and "YX" not in _axes:
64
+ raise ValueError(f"Invalid axes {axes}. X and Y must be contiguous.")
65
+
66
+ # check that the axes are in the right order
67
+ for i, s in enumerate(_axes):
68
+ if i < len(_axes) - 1:
69
+ index_s = AXES.find(s)
70
+ index_next = AXES.find(_axes[i + 1])
71
+
72
+ if index_s > index_next:
73
+ raise ValueError(
74
+ f"Invalid axes {axes}. Axes must be in the order {AXES}."
75
+ )
76
+
77
+
78
+ def add_axes(input_array: np.ndarray, axes: str) -> np.ndarray:
79
+ """
80
+ Add missing axes to the input, typically batch and channel.
81
+
82
+ This method validates the axes first. Then it inspects the input array and add
83
+ missing dimensions if necessary.
84
+
85
+ Parameters
86
+ ----------
87
+ input_array : np.ndarray
88
+ Input array.
89
+ axes : str
90
+ Axes to add.
91
+
92
+ Returns
93
+ -------
94
+ np.ndarray
95
+ Array with new singleton axes.
96
+ """
97
+ # validate axes
98
+ check_axes_validity(axes)
99
+
100
+ # is 3D
101
+ is_3D = "Z" in axes
102
+
103
+ # number of dims
104
+ n_dims = 5 if is_3D else 4
105
+
106
+ # array of dim 2, 3 or 4
107
+ if len(input_array.shape) < n_dims:
108
+ if "S" not in axes and "T" not in axes:
109
+ input_array = input_array[np.newaxis, ...]
110
+
111
+ # still missing C dimension
112
+ if len(input_array.shape) < n_dims:
113
+ input_array = input_array[:, np.newaxis, ...]
114
+
115
+ return input_array
116
+
117
+
118
+ def check_tiling_validity(tile_shape: List[int], overlaps: List[int]) -> None:
119
+ """
120
+ Check that the tiling parameters are valid.
121
+
122
+ Parameters
123
+ ----------
124
+ tile_shape : List[int]
125
+ Shape of the tiles.
126
+ overlaps : List[int]
127
+ Overlap between tiles.
128
+
129
+ Raises
130
+ ------
131
+ ValueError
132
+ If one of the parameters is None.
133
+ ValueError
134
+ If one of the element is zero.
135
+ ValueError
136
+ If one of the element is non-divisible by 2.
137
+ ValueError
138
+ If the number of elements in `overlaps` and `tile_shape` is different.
139
+ ValueError
140
+ If one of the overlaps is larger than the corresponding tile shape.
141
+ """
142
+ # cannot be None
143
+ if tile_shape is None or overlaps is None:
144
+ raise ValueError(
145
+ "Cannot use tiling without specifying `tile_shape` and "
146
+ "`overlaps`, make sure they have been correctly specified."
147
+ )
148
+
149
+ # non-zero and divisible by two
150
+ for dims_list in [tile_shape, overlaps]:
151
+ for dim in dims_list:
152
+ if dim < 1:
153
+ raise ValueError(f"Entry must be non-null positive (got {dim}).")
154
+
155
+ if dim % 2 != 0:
156
+ raise ValueError(f"Entry must be divisible by 2 (got {dim}).")
157
+
158
+ # same length
159
+ if len(overlaps) != len(tile_shape):
160
+ raise ValueError(
161
+ f"Overlaps ({len(overlaps)}) and tile shape ({len(tile_shape)}) must "
162
+ f"have the same number of dimensions."
163
+ )
164
+
165
+ # overlaps smaller than tile shape
166
+ for overlap, tile_dim in zip(overlaps, tile_shape):
167
+ if overlap >= tile_dim:
168
+ raise ValueError(
169
+ f"Overlap ({overlap}) must be smaller than tile shape ({tile_dim})."
170
+ )
@@ -0,0 +1,121 @@
1
+ """
2
+ A WandB logger for CAREamics.
3
+
4
+ Implements a WandB class for use within the Engine.
5
+ """
6
+ import sys
7
+ from pathlib import Path
8
+ from typing import Dict, Union
9
+
10
+ import torch
11
+ import wandb
12
+
13
+ from careamics.config import Configuration
14
+
15
+
16
+ def is_notebook() -> bool:
17
+ """
18
+ Check if the code is executed from a notebook or a qtconsole.
19
+
20
+ Returns
21
+ -------
22
+ bool
23
+ True if the code is executed from a notebooks, False otherwise.
24
+ """
25
+ try:
26
+ from IPython import get_ipython
27
+
28
+ shell = get_ipython().__class__.__name__
29
+ if shell == "ZMQInteractiveShell":
30
+ return True # Jupyter notebook or qtconsole
31
+ else:
32
+ return False
33
+ except (NameError, ModuleNotFoundError):
34
+ return False
35
+
36
+
37
+ class WandBLogging:
38
+ """
39
+ WandB logging class.
40
+
41
+ Parameters
42
+ ----------
43
+ experiment_name : str
44
+ Name of the experiment.
45
+ log_path : Path
46
+ Path in which to save the WandB log.
47
+ config : Configuration
48
+ Configuration of the model.
49
+ model_to_watch : torch.nn.Module
50
+ Model.
51
+ save_code : bool, optional
52
+ Whether to save the code, by default True.
53
+ """
54
+
55
+ def __init__(
56
+ self,
57
+ experiment_name: str,
58
+ log_path: Path,
59
+ config: Configuration,
60
+ model_to_watch: torch.nn.Module,
61
+ save_code: bool = True,
62
+ ):
63
+ """
64
+ Constructor.
65
+
66
+ Parameters
67
+ ----------
68
+ experiment_name : str
69
+ Name of the experiment.
70
+ log_path : Path
71
+ Path in which to save the WandB log.
72
+ config : Configuration
73
+ Configuration of the model.
74
+ model_to_watch : torch.nn.Module
75
+ Model.
76
+ save_code : bool, optional
77
+ Whether to save the code, by default True.
78
+ """
79
+ self.run = wandb.init(
80
+ project="careamics-restoration",
81
+ dir=log_path,
82
+ name=experiment_name,
83
+ config=config.model_dump() if config else None,
84
+ # save_code=save_code,
85
+ )
86
+ if model_to_watch:
87
+ wandb.watch(model_to_watch, log="all", log_freq=1)
88
+ if save_code:
89
+ if is_notebook():
90
+ # Get all sys path and select the root
91
+ code_path = Path([p for p in sys.path if "caremics" in p][-1]).parent
92
+ else:
93
+ code_path = Path("../")
94
+ self.log_code(code_path)
95
+
96
+ def log_metrics(self, metric_dict: Dict) -> None:
97
+ """
98
+ Log metrics to wandb.
99
+
100
+ Parameters
101
+ ----------
102
+ metric_dict : Dict
103
+ New metrics entry.
104
+ """
105
+ self.run.log(metric_dict, commit=True)
106
+
107
+ def log_code(self, code_path: Union[str, Path]) -> None:
108
+ """
109
+ Log code to wandb.
110
+
111
+ Parameters
112
+ ----------
113
+ code_path : Union[str, Path]
114
+ Path to the code.
115
+ """
116
+ self.run.log_code(
117
+ root=code_path,
118
+ include_fn=lambda path: path.endswith(".py")
119
+ or path.endswith(".yml")
120
+ or path.endswith(".yaml"),
121
+ )
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.1
2
+ Name: careamics
3
+ Version: 0.1.0rc2
4
+ Summary: Toolbox for running N2V and friends.
5
+ Project-URL: homepage, https://careamics.github.io/
6
+ Project-URL: repository, https://github.com/CAREamics/careamics
7
+ Author-email: Igor Zubarev <igor.zubarev@fht.org>, Joran Deschamps <joran.deschamps@fht.org>, Vera Galinova <vera.galinova@fht.org>, Mehdi Seifi <mehdi.seifi@fht.org>
8
+ License: BSD-3-Clause
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: License :: OSI Approved :: BSD License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Typing :: Typed
19
+ Requires-Python: >=3.8
20
+ Requires-Dist: bioimageio-core
21
+ Requires-Dist: pydantic>=2.0
22
+ Requires-Dist: pyyaml
23
+ Requires-Dist: scikit-image
24
+ Requires-Dist: tifffile
25
+ Requires-Dist: torch
26
+ Requires-Dist: torchvision
27
+ Requires-Dist: zarr
28
+ Provides-Extra: all
29
+ Requires-Dist: careamics-portfolio; extra == 'all'
30
+ Requires-Dist: ipython; extra == 'all'
31
+ Requires-Dist: itkwidgets; extra == 'all'
32
+ Requires-Dist: jupyter; extra == 'all'
33
+ Requires-Dist: pre-commit; extra == 'all'
34
+ Requires-Dist: pytest; extra == 'all'
35
+ Requires-Dist: pytest-cov; extra == 'all'
36
+ Requires-Dist: torchsummary; extra == 'all'
37
+ Requires-Dist: wandb; extra == 'all'
38
+ Provides-Extra: dev
39
+ Requires-Dist: pre-commit; extra == 'dev'
40
+ Requires-Dist: pytest; extra == 'dev'
41
+ Requires-Dist: pytest-cov; extra == 'dev'
42
+ Provides-Extra: notebooks
43
+ Requires-Dist: careamics-portfolio; extra == 'notebooks'
44
+ Requires-Dist: ipython; extra == 'notebooks'
45
+ Requires-Dist: itkwidgets; extra == 'notebooks'
46
+ Requires-Dist: jupyter; extra == 'notebooks'
47
+ Requires-Dist: torchsummary; extra == 'notebooks'
48
+ Requires-Dist: wandb; extra == 'notebooks'
49
+ Provides-Extra: test
50
+ Requires-Dist: pytest; extra == 'test'
51
+ Requires-Dist: pytest-cov; extra == 'test'
52
+ Requires-Dist: wandb; extra == 'test'
53
+ Description-Content-Type: text/markdown
54
+
55
+ <p align="center">
56
+ <a href="https://careamics.github.io/">
57
+ <img src="https://raw.githubusercontent.com/CAREamics/.github/main/profile/images/banner_careamics.png">
58
+ </a>
59
+ </p>
60
+
61
+ # CAREamics
62
+
63
+ [![License](https://img.shields.io/pypi/l/careamics.svg?color=green)](https://github.com/CAREamics/careamics/blob/main/LICENSE)
64
+ [![PyPI](https://img.shields.io/pypi/v/careamics.svg?color=green)](https://pypi.org/project/careamics)
65
+ [![Python Version](https://img.shields.io/pypi/pyversions/careamics.svg?color=green)](https://python.org)
66
+ [![CI](https://github.com/CAREamics/careamics/actions/workflows/ci.yml/badge.svg)](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
67
+ [![codecov](https://codecov.io/gh/CAREamics/careamics/branch/main/graph/badge.svg)](https://codecov.io/gh/CAREamics/careamics)
68
+
69
+ ## Installation
70
+
71
+ ``` bash
72
+ pip install careamics
73
+ ```
74
+ For more details on the options please follow the installation [guide](https://careamics.github.io/installation/).
75
+
76
+ <!--
77
+ ## Contributing
78
+
79
+ ## Citing us
80
+
81
+ -->
@@ -0,0 +1,47 @@
1
+ careamics/__init__.py,sha256=loM0NCye76AI06vlOtB0sb0B_lqza4xbV5wylrhebzI,383
2
+ careamics/engine.py,sha256=EAK_EtJwGrCNUGoEPPEdFit9tpnMQILhrvg-q0LMqQU,34132
3
+ careamics/py.typed,sha256=esB4cHc6c07uVkGtqf8at7ttEnprwRxwk8obY8Qumq4,187
4
+ careamics/bioimage/__init__.py,sha256=hXD6_jCPkqJHOBjbsmYmGiH4_kM9_ol5KtX0ECK3rgQ,334
5
+ careamics/bioimage/io.py,sha256=Z4lqUyX9nic1pRmLIS2ulxoOTPPf_XaVHOfq38CUdAM,5533
6
+ careamics/bioimage/rdf.py,sha256=CvVMAZqQGS2Ga-Rm0V1AxuhUTeMGOunEI_HlnD6cxiw,3003
7
+ careamics/bioimage/docs/Noise2Void.md,sha256=tY66itOlXuVso4tHBM7zfPocjxNuQ4rya6DY7qgs_ro,271
8
+ careamics/bioimage/docs/__init__.py,sha256=pbN_tkgjycF2Ps1PvrMKzVX7i210LbN6qxmE6lm9yVg,63
9
+ careamics/config/__init__.py,sha256=NiHGEY0EPcyEPXJs5zPFLQ8LpJqcIN51L51AlzeBzWI,252
10
+ careamics/config/algorithm.py,sha256=cd4G2O3ih4sLmqU4BAdwHE1UJcjfs6GC9sgGQRsVyL0,6318
11
+ careamics/config/config.py,sha256=TYeTQT9fzvSqzimLRSjFFAuFivzi192lZqFKgnp-Y6g,8291
12
+ careamics/config/config_filter.py,sha256=nUPdZvvN8hb8P8rc-S938MnOL46DRK1RkOs-3KpXAh8,1082
13
+ careamics/config/data.py,sha256=8HIHHoEwLaapX9b1UD39vBJ5EoPUFGxmGqoTXXW3ggA,5027
14
+ careamics/config/torch_optim.py,sha256=YyicWpULiHY1jVB_MKi7HHqV5DMjvhmGOSS1tfJ3mm8,3096
15
+ careamics/config/training.py,sha256=E21Pp8fX_NVffeemPRA_twyzEpgtg2ak1ffwx-SeTgc,15451
16
+ careamics/dataset/__init__.py,sha256=LomFfq1GKNkTXke2Q2t3hJ8sqwfUd1DKX63svU4eL2o,22
17
+ careamics/dataset/dataset_utils.py,sha256=oo2yfeTgVONTlv4R1eey0RhsoJqT4VkEQgRaReJHzeE,2822
18
+ careamics/dataset/extraction_strategy.py,sha256=rzoggAHhXlq3h66X5C1aYG-AKG7ik-2Ifr-ESWWd1eI,485
19
+ careamics/dataset/in_memory_dataset.py,sha256=-2FPfj4oNNqO4HSpDstpjzgLvBJ2wby9RCHOy-7-Rew,6905
20
+ careamics/dataset/patching.py,sha256=vVgZ4_cxYTn4ycqjYdy3XapSJKCpfGzTR8YnndXtfD4,15344
21
+ careamics/dataset/prepare_dataset.py,sha256=-Ln9vOYNJReD1-U9kU-0hWtscWxKFc19ZrSwGTZH-mQ,5135
22
+ careamics/dataset/tiff_dataset.py,sha256=bMdovjRC_CIlGdYPG73CWSR7R9HBSg2jLl2p4TD2WTU,7664
23
+ careamics/losses/__init__.py,sha256=U8d0ohvezpFiUF7cBvr8Mb0tAhzZracw5i4GN-5ErOo,94
24
+ careamics/losses/loss_factory.py,sha256=SAkO8rv3xlQrtd21svXYLihLLK_SZfq1r86TTERAgkM,774
25
+ careamics/losses/losses.py,sha256=HElIXbgsP1ujsvQhebl2n3KFKERIaG64K-bolI9CGDk,751
26
+ careamics/manipulation/__init__.py,sha256=eJ5FrR0683tkEpfjVehtPXrGdrxrboOjE92gaMt54MU,119
27
+ careamics/manipulation/pixel_manipulation.py,sha256=XeJQwHhPDjQhhLke2t_hQh4Arf9dC2wd3qxgGdG2rB4,5056
28
+ careamics/models/__init__.py,sha256=zZE6_dg4Xv6eZZO0b9N1x-xGUyoziSpL2gOgeXRcp14,110
29
+ careamics/models/layers.py,sha256=4xrqr6VYFKM3Eto_ll5P_h_IXzEtHOO7GES7T95cIVo,4700
30
+ careamics/models/model_factory.py,sha256=d3LyDt28CAhDGcLKEFDCWi4Uvb3rIsOfRaWfP1a71-Q,7892
31
+ careamics/models/unet.py,sha256=Xon6x717SxhutOKzSsh4dCnSLesq5GrIQL4UXJ66CTY,10053
32
+ careamics/prediction/__init__.py,sha256=zIFx-zPhpreGM5hcV5R3rxTdfWw3wnXEMg2fbYqQNfw,183
33
+ careamics/prediction/prediction_utils.py,sha256=CcSSUWw9f9xIXh5Y6QHBQC-GGaIWv_fc913_AN1wpr0,2933
34
+ careamics/utils/__init__.py,sha256=wFqhdFsdE39x1ToFvH4iN8qAb0sMN-u4O74VWulBsJA,419
35
+ careamics/utils/ascii_logo.txt,sha256=lWwzJbuZLEpKw8R8LU1-KEwzYWqW9G_8IZLb7z8kYO0,942
36
+ careamics/utils/augment.py,sha256=NltOlCgUQ-kFx5M8uUrJz7JfINDxpS-Nzx9UQCH89M8,1793
37
+ careamics/utils/context.py,sha256=4xMOMQGkfX-Sookb1BobRVBh2v8t2y4linOluHKpdec,956
38
+ careamics/utils/logging.py,sha256=VP6QK4GqVGZiVCOHcFwrfOY6qrvMvqP6_Wj2sZpbvfc,10321
39
+ careamics/utils/metrics.py,sha256=X5umq3mKt1J5u75imlFMJwvwkwHErAcIQfAk0bfQdrA,3484
40
+ careamics/utils/normalization.py,sha256=8OHnv2dsuTcNBbjmYf1zjODru8Zm7oIxHZvshPJnR6g,1129
41
+ careamics/utils/torch_utils.py,sha256=vJh9AwkHvYMWMLmICHaZwXay6CJN5rg3RnuNxZG-WxY,2348
42
+ careamics/utils/validators.py,sha256=eiAmsJs04rfDJq_iJ7WaBbeAYCuMXEd0nnEcHdGAViQ,4965
43
+ careamics/utils/wandb.py,sha256=2h8kM99JFDsPo9Hup_Q-3fglc2QrFN-8ZGiyjZ2BZU8,3095
44
+ careamics-0.1.0rc2.dist-info/METADATA,sha256=fs7yIZ89pIuqh-Ejca_liuT_Xlsn89qX0XZrqZtQqec,3129
45
+ careamics-0.1.0rc2.dist-info/WHEEL,sha256=mRYSEL3Ih6g5a_CVMIcwiF__0Ae4_gLYh01YFNwiq1k,87
46
+ careamics-0.1.0rc2.dist-info/licenses/LICENSE,sha256=6zdNW-k_xHRKYWUf9tDI_ZplUciFHyj0g16DYuZ2udw,1509
47
+ careamics-0.1.0rc2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.17.0
2
+ Generator: hatchling 1.21.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,6 +1,6 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2023, Jug lab
3
+ Copyright (c) 2023, CAREamics contributors
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without
6
6
  modification, are permitted provided that the following conditions are met:
@@ -1,46 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: careamics
3
- Version: 0.0.1
4
- Summary: CAREamics
5
- Project-URL: homepage, https://careamics.github.io/
6
- Project-URL: repository, https://github.com/CAREamics/careamics
7
- Author-email: Igor Zubarev <igor.zubarev@fht.org>, Joran Deschamps <joran.deschamps@fht.org>
8
- License: BSD-3-Clause
9
- License-File: LICENSE
10
- Classifier: Development Status :: 3 - Alpha
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.8
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Requires-Python: >=3.8
17
- Provides-Extra: dev
18
- Requires-Dist: black; extra == 'dev'
19
- Requires-Dist: ipython; extra == 'dev'
20
- Requires-Dist: mypy; extra == 'dev'
21
- Requires-Dist: pdbpp; extra == 'dev'
22
- Requires-Dist: rich; extra == 'dev'
23
- Requires-Dist: ruff; extra == 'dev'
24
- Provides-Extra: test
25
- Requires-Dist: pytest; extra == 'test'
26
- Requires-Dist: pytest-cov; extra == 'test'
27
- Description-Content-Type: text/markdown
28
-
29
- <p align="center">
30
- <a href="https://careamics.github.io/">
31
- <img src="https://github.com/CAREamics/.github/blob/main/profile/images/banner_careamics.png">
32
- </a>
33
- </p>
34
-
35
-
36
- [![License](https://img.shields.io/pypi/l/careamics.svg?color=green)](https://github.com/CAREamics/careamics/raw/main/LICENSE)
37
- [![PyPI](https://img.shields.io/pypi/v/careamics.svg?color=green)](https://pypi.org/project/careamics)
38
- [![Python Version](https://img.shields.io/pypi/pyversions/careamics.svg?color=green)](https://python.org)
39
- [![CI](https://github.com/CAREamics/careamics/actions/workflows/ci.yml/badge.svg)](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
40
- [![codecov](https://codecov.io/gh/CAREamics/careamics/branch/main/graph/badge.svg)](https://codecov.io/gh/CAREamics/careamics)
41
-
42
-
43
- Stay tuned for DL goodies with CAREamics!
44
-
45
- Currently, this version is a place-holder, next version will contain the
46
- first usable algorithms, as well as examples.
@@ -1,6 +0,0 @@
1
- careamics/__init__.py,sha256=ogKe__nnaRWQklzZZAT7F9-z3D8eWZzG5fBpaivO51A,184
2
- careamics/py.typed,sha256=esB4cHc6c07uVkGtqf8at7ttEnprwRxwk8obY8Qumq4,187
3
- careamics-0.0.1.dist-info/METADATA,sha256=-9ypzXlipRX_PCkpcMSs873tMskRtHJJFGTuFaZpl08,1976
4
- careamics-0.0.1.dist-info/WHEEL,sha256=y1bSCq4r5i4nMmpXeUJMqs3ipKvkZObrIXSvJHm1qCI,87
5
- careamics-0.0.1.dist-info/licenses/LICENSE,sha256=Le7j5j9jk5n16Nu8uRUB8tD-mZ5Dn4iylCbngQxV9gw,1494
6
- careamics-0.0.1.dist-info/RECORD,,