exprmat 0.1.26__tar.gz → 0.1.28__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 (169) hide show
  1. {exprmat-0.1.26 → exprmat-0.1.28}/PKG-INFO +1 -1
  2. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/__init__.py +43 -26
  3. {exprmat-0.1.26 → exprmat-0.1.28}/pyproject.toml +5 -1
  4. exprmat-0.1.26/exprmat/data/tools/gene-model.ipynb +0 -685
  5. exprmat-0.1.26/exprmat/data/tools/retrieve-assembly-info.ipynb +0 -1882
  6. {exprmat-0.1.26 → exprmat-0.1.28}/Cargo.lock +0 -0
  7. {exprmat-0.1.26 → exprmat-0.1.28}/Cargo.toml +0 -0
  8. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/ansi.py +0 -0
  9. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/__init__.py +0 -0
  10. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/cnmf.py +0 -0
  11. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/dbscan.py +0 -0
  12. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/kmeans.py +0 -0
  13. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/leiden.py +0 -0
  14. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/nmf.py +0 -0
  15. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/rogue.py +0 -0
  16. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/seriation.py +0 -0
  17. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/spectral.py +0 -0
  18. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/clustering/utils.py +0 -0
  19. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/cnv/__init__.py +0 -0
  20. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/cnv/cnvscore.py +0 -0
  21. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/cnv/infercnv.py +0 -0
  22. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/configuration.py +0 -0
  23. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/__init__.py +0 -0
  24. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/cistarget.py +0 -0
  25. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/delim.py +0 -0
  26. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/finders.py +0 -0
  27. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/geneset.py +0 -0
  28. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/gff.py +0 -0
  29. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/io.py +0 -0
  30. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/lr.py +0 -0
  31. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/presets.py +0 -0
  32. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/private.py +0 -0
  33. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/ranges.py +0 -0
  34. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/signature.py +0 -0
  35. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/data/tf.py +0 -0
  36. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/__init__.py +0 -0
  37. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/aggregate.py +0 -0
  38. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/atac.py +0 -0
  39. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/aucell.py +0 -0
  40. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/de.py +0 -0
  41. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/gse.py +0 -0
  42. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/kde.py +0 -0
  43. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/recovery.py +0 -0
  44. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/summary.py +0 -0
  45. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/descriptive/tcr.py +0 -0
  46. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/__init__.py +0 -0
  47. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/generank.py +0 -0
  48. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/linreg.py +0 -0
  49. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/moments.py +0 -0
  50. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/optimization.py +0 -0
  51. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/parallel.py +0 -0
  52. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/preprocess.py +0 -0
  53. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/pseudotime.py +0 -0
  54. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/transition.py +0 -0
  55. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/utils.py +0 -0
  56. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/dynamics/velocity.py +0 -0
  57. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/grn/__init__.py +0 -0
  58. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/grn/infergrn.py +0 -0
  59. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/grn/modules.py +0 -0
  60. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/grn/prune.py +0 -0
  61. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/grn/regressors.py +0 -0
  62. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/grn/utils.py +0 -0
  63. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/__init__.py +0 -0
  64. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/aggregate.py +0 -0
  65. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/method.py +0 -0
  66. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/__init__.py +0 -0
  67. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/cellchat.py +0 -0
  68. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/cellphonedb.py +0 -0
  69. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/connectome.py +0 -0
  70. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/geomean.py +0 -0
  71. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/logfc.py +0 -0
  72. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/natmi.py +0 -0
  73. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/rank_aggregate.py +0 -0
  74. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/scseqcomm.py +0 -0
  75. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/methods/singlecellsignalr.py +0 -0
  76. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/pipeline.py +0 -0
  77. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/preprocess.py +0 -0
  78. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/resources.py +0 -0
  79. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/lr/utils.py +0 -0
  80. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/__init__.py +0 -0
  81. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/atac.py +0 -0
  82. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/cnmf.py +0 -0
  83. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/cnv.py +0 -0
  84. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/de.py +0 -0
  85. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/expression.py +0 -0
  86. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/gse.py +0 -0
  87. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/lr.py +0 -0
  88. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/palettes.py +0 -0
  89. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/sankey.py +0 -0
  90. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/summary.py +0 -0
  91. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/track.py +0 -0
  92. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/utils.py +0 -0
  93. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/plotting/velocity.py +0 -0
  94. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/__init__.py +0 -0
  95. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/doublets/__init__.py +0 -0
  96. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/doublets/composite.py +0 -0
  97. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/doublets/scrublet.py +0 -0
  98. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/emptydrops.py +0 -0
  99. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/filter.py +0 -0
  100. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/impute/__init__.py +0 -0
  101. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/impute/magic.py +0 -0
  102. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/integrate.py +0 -0
  103. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/linear.py +0 -0
  104. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/normal.py +0 -0
  105. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/plot.py +0 -0
  106. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/qc.py +0 -0
  107. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/__init__.py +0 -0
  108. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/estimate.py +0 -0
  109. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/ksmooth.py +0 -0
  110. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/residual.py +0 -0
  111. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/sctransform/transform.py +0 -0
  112. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/sparse.py +0 -0
  113. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/preprocessing/uniform.py +0 -0
  114. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reader/__init__.py +0 -0
  115. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reader/experiment.py +0 -0
  116. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reader/matcher.py +0 -0
  117. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reader/metadata.py +0 -0
  118. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reader/peaks.py +0 -0
  119. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reader/static.py +0 -0
  120. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/__init__.py +0 -0
  121. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/forceatlas.py +0 -0
  122. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/mde.py +0 -0
  123. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/nn.py +0 -0
  124. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/outliers.py +0 -0
  125. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/pca.py +0 -0
  126. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/plot.py +0 -0
  127. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/spectral.py +0 -0
  128. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/tsne.py +0 -0
  129. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/reduction/umap.py +0 -0
  130. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/trajectory/pcurve.py +0 -0
  131. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/transfer/__init__.py +0 -0
  132. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/transfer/atlas.py +0 -0
  133. {exprmat-0.1.26 → exprmat-0.1.28}/exprmat/utils.py +0 -0
  134. {exprmat-0.1.26 → exprmat-0.1.28}/license +0 -0
  135. {exprmat-0.1.26 → exprmat-0.1.28}/readme.md +0 -0
  136. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/Cargo.toml +0 -0
  137. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/license +0 -0
  138. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/readme +0 -0
  139. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/call_peaks.rs +0 -0
  140. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/embedding.rs +0 -0
  141. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/export.rs +0 -0
  142. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/knn.rs +0 -0
  143. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/lib.rs +0 -0
  144. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/motif.rs +0 -0
  145. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/network.rs +0 -0
  146. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/preprocessing.rs +0 -0
  147. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/utils/anndata.rs +0 -0
  148. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2/src/utils.rs +0 -0
  149. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/Cargo.toml +0 -0
  150. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/embedding.rs +0 -0
  151. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/export.rs +0 -0
  152. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/feature_count/counter.rs +0 -0
  153. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/feature_count/data_iter.rs +0 -0
  154. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/feature_count/matrix.rs +0 -0
  155. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/feature_count/mod.rs +0 -0
  156. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/genome.rs +0 -0
  157. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/lib.rs +0 -0
  158. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/motif.rs +0 -0
  159. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/network.rs +0 -0
  160. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam/flagstat.rs +0 -0
  161. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam/header.rs +0 -0
  162. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam/mark_duplicates.rs +0 -0
  163. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/bam.rs +0 -0
  164. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/import.rs +0 -0
  165. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/mod.rs +0 -0
  166. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/preprocessing/qc.rs +0 -0
  167. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/utils/knn.rs +0 -0
  168. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/utils/mod.rs +0 -0
  169. {exprmat-0.1.26 → exprmat-0.1.28}/snapatac2-core/src/utils/similarity.rs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: exprmat
3
- Version: 0.1.26
3
+ Version: 0.1.28
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -8,22 +8,24 @@ import importlib.metadata
8
8
  import mudata as mu
9
9
  import anndata as ad
10
10
  import scanpy as sc
11
+ import pathlib
11
12
 
12
13
  # core method exports
13
14
  from exprmat.utils import setup_styles
14
15
  from exprmat.reader.experiment import experiment, load_experiment
15
16
  from exprmat.reader.metadata import metadata, load_metadata
16
- import exprmat.configuration as config
17
- from exprmat.ansi import warning
17
+ from exprmat.configuration import default as config
18
+ from exprmat.ansi import warning, info
18
19
 
19
20
  mu.set_options(pull_on_update = False)
20
21
  setup_styles()
21
22
 
23
+
22
24
  DATABASE_SETUP_MESSAGE = """
23
25
  The exprmat package do not come with a included database after version 0.1.25,
24
26
  due to the extensive size of the reference data. You need to setup the database
25
- and configure it properly with configuration file `exprmat.config` under your
26
- current working directory.
27
+ and configure it properly with configuration file `.exprmatrc` under your
28
+ user root or current working directory
27
29
 
28
30
  For more guide on how to setup the database folder, and more information about
29
31
  what the database includes, see <https://github.com/yang-z-03/exprmat>
@@ -31,31 +33,44 @@ what the database includes, see <https://github.com/yang-z-03/exprmat>
31
33
 
32
34
  # load configuration
33
35
  PERFORM_DATABASE_CHECK = True
34
- if os.path.exists('exprmat.config'):
35
- with open('exprmat.config', 'r') as f:
36
- import json
37
- workspace_config = json.load(f)
38
- config.default.update(workspace_config)
39
-
40
-
41
- # perform database integrity check.
42
- if PERFORM_DATABASE_CHECK:
43
- dbpath = config.default['data']
36
+ default_finders = [
37
+ 'exprmat.config',
38
+ '.exprmat.config',
39
+ '.exprmatrc',
40
+ os.path.join(str(pathlib.Path.home()), 'exprmat.config'),
41
+ os.path.join(str(pathlib.Path.home()), '.exprmat.config'),
42
+ os.path.join(str(pathlib.Path.home()), '.exprmatrc')
43
+ ]
44
+
45
+ for finder in default_finders:
46
+ if os.path.exists(finder):
47
+ info(f'load configuration from {finder}.')
48
+ with open(finder, 'r') as f:
49
+ import json
50
+ workspace_config = json.load(f)
51
+ config.update(workspace_config)
52
+
53
+ def version_db():
54
+ dbpath = config['data']
44
55
  version_file = os.path.join(dbpath, '.bsync', 'current')
45
- db_setup = True
46
-
47
- if not os.path.exists(version_file): db_setup = False
56
+
57
+ if not os.path.exists(version_file):
58
+ db_ver = None
48
59
  else:
49
60
  with open(version_file, 'r') as vf:
50
61
  db_ver = vf.read().strip()
51
- if db_ver != importlib.metadata.version("exprmat"):
52
- pkg_ver = importlib.metadata.version("exprmat")
53
- warning('the exprmat database version ({db_ver}) is not compatible with package version ({pkg_ver})')
54
- db_setup = False
55
62
 
56
- if not db_setup:
57
- warning('the database is not set.')
63
+ return db_ver
64
+
65
+ # perform database integrity check.
66
+ if PERFORM_DATABASE_CHECK:
67
+ db_ver = version_db()
68
+ if db_ver is None:
69
+ warning('the database is not installed.')
58
70
  print(DATABASE_SETUP_MESSAGE)
71
+ elif db_ver != importlib.metadata.version("exprmat"):
72
+ warning('the database version do not match the package version')
73
+ warning(f'db version: {db_ver} package version: {importlib.metadata.version("exprmat")}')
59
74
 
60
75
 
61
76
  def version():
@@ -65,11 +80,13 @@ def version():
65
80
  from exprmat.ansi import info, error, format_file_size
66
81
 
67
82
  ver_string = importlib.metadata.version("exprmat")
83
+ db_ver = version_db()
84
+
68
85
  MAJOR, MINOR, REVISION = [int(x) for x in ver_string.split('.')]
69
- info(f'exprmat {MAJOR}.{MINOR}.{REVISION}')
86
+ info(f'exprmat {MAJOR}.{MINOR}.{REVISION} / exprmat-db {db_ver if db_ver is not None else "(Not installed)"}')
70
87
  info(f'os: {os.name} ({sys.platform}) platform version: {platform.release()}')
71
88
  info(f'current working directory: {os.getcwd()}')
72
- info(f'current database directory: {config.default["data"]}')
89
+ info(f'current database directory: {config["data"]} ({db_ver if db_ver is not None else "(Not found)"})')
73
90
  memory()
74
91
  return (MAJOR, MINOR, REVISION)
75
92
 
@@ -86,7 +103,7 @@ def memory():
86
103
 
87
104
  setwd = os.chdir
88
105
  getwd = os.getcwd
89
- def locate_data(dir): config.default.update_config('data', dir)
106
+ def locate_data(dir): config.update_config('data', dir)
90
107
 
91
108
 
92
109
  __all__ = [
@@ -7,6 +7,10 @@ features = ["pyo3/extension-module"]
7
7
  python-source = "."
8
8
  module-name = "exprmat.snapatac"
9
9
  manifest-path = "snapatac2/Cargo.toml"
10
+ exclude = [
11
+ "exprmat/data/tools/**/*",
12
+ "exprmat/data/tools/*"
13
+ ]
10
14
 
11
15
  [project]
12
16
  name = "exprmat"
@@ -14,7 +18,7 @@ description = "exprmat: Routines for expression matrices"
14
18
  readme = "readme.md"
15
19
  license = {file = "license"}
16
20
  requires-python = ">=3.9, <3.13"
17
- version = "0.1.26"
21
+ version = "0.1.28"
18
22
  authors = [
19
23
  {name = "Zheng Yang", email = "xornent@outlook.com"}
20
24
  ]