dapper 1.4.0__tar.gz → 1.5.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.
Files changed (153) hide show
  1. {dapper-1.4.0 → dapper-1.5.0}/PKG-INFO +4 -3
  2. {dapper-1.4.0 → dapper-1.5.0}/README.md +2 -2
  3. {dapper-1.4.0 → dapper-1.5.0}/dapper/__init__.py +1 -1
  4. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/liveplotting.py +1 -10
  5. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/remote/autoscaler.py +0 -0
  6. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/series.py +6 -5
  7. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/viz.py +1 -1
  8. {dapper-1.4.0 → dapper-1.5.0}/dapper/xp_process.py +2 -1
  9. {dapper-1.4.0 → dapper-1.5.0}/dapper.egg-info/PKG-INFO +4 -3
  10. {dapper-1.4.0 → dapper-1.5.0}/dapper.egg-info/requires.txt +10 -5
  11. {dapper-1.4.0 → dapper-1.5.0}/examples/basic_1.py +1 -0
  12. {dapper-1.4.0 → dapper-1.5.0}/setup.py +10 -8
  13. {dapper-1.4.0 → dapper-1.5.0}/LICENCE.txt +0 -0
  14. {dapper-1.4.0 → dapper-1.5.0}/dapper/README.md +0 -0
  15. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/README.md +0 -0
  16. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/__init__.py +0 -0
  17. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/baseline.py +0 -0
  18. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/ensemble.py +0 -0
  19. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/extended.py +0 -0
  20. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/other.py +0 -0
  21. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/particle.py +0 -0
  22. {dapper-1.4.0 → dapper-1.5.0}/dapper/da_methods/variational.py +0 -0
  23. {dapper-1.4.0 → dapper-1.5.0}/dapper/dpr_config.py +0 -0
  24. {dapper-1.4.0 → dapper-1.5.0}/dapper/dpr_config.yaml +0 -0
  25. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/DoublePendulum/__init__.py +0 -0
  26. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/DoublePendulum/demo.py +0 -0
  27. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/DoublePendulum/settings101.py +0 -0
  28. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Id/__init__.py +0 -0
  29. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Ikeda/__init__.py +0 -0
  30. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Ikeda/demo.py +0 -0
  31. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Ikeda/some_settings_01.py +0 -0
  32. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/KS/__init__.py +0 -0
  33. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/KS/bocquet2019.py +0 -0
  34. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/KS/compare_schemes.py +0 -0
  35. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/KS/demo.py +0 -0
  36. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LA/__init__.py +0 -0
  37. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LA/demo.py +0 -0
  38. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LA/evensen2009.py +0 -0
  39. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LA/raanes2015.py +0 -0
  40. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LA/small.py +0 -0
  41. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz05/__init__.py +0 -0
  42. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz05/demo.py +0 -0
  43. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz05/settings01.py +0 -0
  44. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/__init__.py +0 -0
  45. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/anderson2010rhf.py +0 -0
  46. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/bocquet2012.py +0 -0
  47. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/demo.py +0 -0
  48. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/extras.py +0 -0
  49. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/mandel2016.py +0 -0
  50. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/sakov2012.py +0 -0
  51. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz63/wiljes2017.py +0 -0
  52. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz84/__init__.py +0 -0
  53. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz84/demo.py +0 -0
  54. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz84/harder.py +0 -0
  55. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz84/pajonk2012.py +0 -0
  56. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/__init__.py +0 -0
  57. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/anderson2009.py +0 -0
  58. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/bocquet2010.py +0 -0
  59. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/bocquet2010_m40.py +0 -0
  60. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/bocquet2015loc.py +0 -0
  61. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/demo.py +0 -0
  62. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/extras.py +0 -0
  63. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/frei2013bridging.py +0 -0
  64. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/hoteit2015.py +0 -0
  65. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/miyoshi2011.py +0 -0
  66. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/pinheiro2019.py +0 -0
  67. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/raanes2016.py +0 -0
  68. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/sakov2008.py +0 -0
  69. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/spectral_obs.py +0 -0
  70. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/todter2015.py +0 -0
  71. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96/todter2015_G.py +0 -0
  72. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96s/__init__.py +0 -0
  73. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/Lorenz96s/grudzien2020.py +0 -0
  74. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LorenzUV/__init__.py +0 -0
  75. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LorenzUV/demo.py +0 -0
  76. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LorenzUV/illust_LorenzUV.py +0 -0
  77. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LorenzUV/illust_parameterizations.py +0 -0
  78. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LorenzUV/lorenz96.py +0 -0
  79. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LorenzUV/wilks05.py +0 -0
  80. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LotkaVolterra/__init__.py +0 -0
  81. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LotkaVolterra/demo.py +0 -0
  82. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/LotkaVolterra/settings101.py +0 -0
  83. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/__init__.py +0 -0
  84. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/counillon2009.py +0 -0
  85. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/demo.py +0 -0
  86. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/Makefile +0 -0
  87. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/README.md +0 -0
  88. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/__init__.py +0 -0
  89. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/calc.f90 +0 -0
  90. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/data.f90 +0 -0
  91. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/helmholtz.f90 +0 -0
  92. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/interface.f90 +0 -0
  93. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/nfw.f90 +0 -0
  94. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/parameters.f90 +0 -0
  95. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_cou09_ens.txt +0 -0
  96. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_cou09_truth.txt +0 -0
  97. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_counillon2009_ens.txt +0 -0
  98. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_counillon2009_truth.txt +0 -0
  99. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_sak08.txt +0 -0
  100. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_sakov2008.txt +0 -0
  101. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_sample_generation.txt +0 -0
  102. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/prms_test_model.txt +0 -0
  103. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/qg.f90 +0 -0
  104. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/qgflux.f90 +0 -0
  105. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/qgstep.f90 +0 -0
  106. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/f90/utils.f90 +0 -0
  107. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/governing_eqn.png +0 -0
  108. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/illust_obs.py +0 -0
  109. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/QG/sakov2008.py +0 -0
  110. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/README.md +0 -0
  111. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/VL20/__init__.py +0 -0
  112. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/VL20/demo.py +0 -0
  113. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/__init__.py +0 -0
  114. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/explore_props.py +0 -0
  115. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/integration.py +0 -0
  116. {dapper-1.4.0 → dapper-1.5.0}/dapper/mods/utils.py +0 -0
  117. {dapper-1.4.0 → dapper-1.5.0}/dapper/stats.py +0 -0
  118. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/__init__.py +0 -0
  119. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/chronos.py +0 -0
  120. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/colors.py +0 -0
  121. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/datafiles.py +0 -0
  122. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/linalg.py +0 -0
  123. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/localization.py +0 -0
  124. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/matrices.py +0 -0
  125. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/multiproc.py +0 -0
  126. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/progressbar.py +0 -0
  127. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/randvars.py +0 -0
  128. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/remote/README.md +0 -0
  129. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/remote/__init__.py +0 -0
  130. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/remote/uplink.py +0 -0
  131. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/rounding.py +0 -0
  132. {dapper-1.4.0 → dapper-1.5.0}/dapper/tools/seeding.py +0 -0
  133. {dapper-1.4.0 → dapper-1.5.0}/dapper/xp_launch.py +0 -0
  134. {dapper-1.4.0 → dapper-1.5.0}/dapper.egg-info/SOURCES.txt +0 -0
  135. {dapper-1.4.0 → dapper-1.5.0}/dapper.egg-info/dependency_links.txt +0 -0
  136. {dapper-1.4.0 → dapper-1.5.0}/dapper.egg-info/top_level.txt +0 -0
  137. {dapper-1.4.0 → dapper-1.5.0}/examples/basic_2.py +0 -0
  138. {dapper-1.4.0 → dapper-1.5.0}/pyproject.toml +0 -0
  139. {dapper-1.4.0 → dapper-1.5.0}/setup.cfg +0 -0
  140. {dapper-1.4.0 → dapper-1.5.0}/tests/__init__.py +0 -0
  141. {dapper-1.4.0 → dapper-1.5.0}/tests/test_HMMs.py +0 -0
  142. {dapper-1.4.0 → dapper-1.5.0}/tests/test_TLMs.py +0 -0
  143. {dapper-1.4.0 → dapper-1.5.0}/tests/test_data.py +0 -0
  144. {dapper-1.4.0 → dapper-1.5.0}/tests/test_demos.py +0 -0
  145. {dapper-1.4.0 → dapper-1.5.0}/tests/test_example_2.py +0 -0
  146. {dapper-1.4.0 → dapper-1.5.0}/tests/test_iEnKS.py +0 -0
  147. {dapper-1.4.0 → dapper-1.5.0}/tests/test_localization.py +0 -0
  148. {dapper-1.4.0 → dapper-1.5.0}/tests/test_matrices.py +0 -0
  149. {dapper-1.4.0 → dapper-1.5.0}/tests/test_operator.py +0 -0
  150. {dapper-1.4.0 → dapper-1.5.0}/tests/test_plotting.py +0 -0
  151. {dapper-1.4.0 → dapper-1.5.0}/tests/test_printing.py +0 -0
  152. {dapper-1.4.0 → dapper-1.5.0}/tests/test_randvars.py +0 -0
  153. {dapper-1.4.0 → dapper-1.5.0}/tests/test_round2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dapper
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: DAPPER benchmarks the performance of data assimilation (DA) methods.
5
5
  Author: Patrick N. Raanes
6
6
  Author-email: patrick.n.raanes@gmail.com
@@ -14,13 +14,14 @@ Classifier: Topic :: Scientific/Engineering :: Mathematics
14
14
  Classifier: Programming Language :: Python :: 3
15
15
  Classifier: License :: OSI Approved :: MIT License
16
16
  Classifier: Operating System :: OS Independent
17
- Requires-Python: >=3.7
17
+ Requires-Python: >=3.9
18
18
  Description-Content-Type: text/markdown
19
19
  Provides-Extra: Qt
20
- Provides-Extra: dev
20
+ Provides-Extra: debug
21
21
  Provides-Extra: test
22
22
  Provides-Extra: lint
23
23
  Provides-Extra: build
24
+ Provides-Extra: dev
24
25
  License-File: LICENCE.txt
25
26
 
26
27
  It is usually best to install from source (github),
@@ -91,7 +91,7 @@ Also see its [drawbacks](#similar-projects).
91
91
 
92
92
  Successfully tested on Linux/Mac/Windows.
93
93
 
94
- ### Prerequisite: Python>=3.7 (3.9 on Windows)
94
+ ### Prerequisite: Python>=3.9
95
95
 
96
96
  If you're an expert, setup a python environment however you like.
97
97
  Otherwise:
@@ -105,7 +105,7 @@ conda activate dapper-env
105
105
  python --version
106
106
  ```
107
107
 
108
- Ensure the printed version is 3.7 or more.
108
+ Ensure the printed version is 3.9 or more.
109
109
  *Keep using the same terminal for the commands below.*
110
110
 
111
111
  ### Install
@@ -4,7 +4,7 @@
4
4
  .. include:: ./README.md
5
5
  """
6
6
 
7
- __version__ = "1.4.0"
7
+ __version__ = "1.5.0"
8
8
 
9
9
  # A parsimonious list of imports used in the examples
10
10
  from .dpr_config import rc
@@ -21,7 +21,6 @@ argument of the `HMM.liveplotter` and default liveplotters defined in this modul
21
21
  is the name of the corresponding liveplotting classes/functions.
22
22
  """
23
23
 
24
- import matplotlib as mpl
25
24
  import numpy as np
26
25
  import scipy.linalg as sla
27
26
  from matplotlib import pyplot as plt
@@ -579,17 +578,9 @@ class correlations:
579
578
  if Nx <= 1003:
580
579
  C = np.eye(Nx)
581
580
  # Mask half
582
- mask = np.zeros_like(C, dtype=np.bool)
581
+ mask = np.zeros_like(C, dtype=bool)
583
582
  mask[np.tril_indices_from(mask)] = True
584
- # Make colormap. Log-transform cmap,
585
- # but not internally in matplotlib,
586
- # so as to avoid transforming the colorbar too.
587
583
  cmap = plt.get_cmap('RdBu_r')
588
- trfm = mpl.colors.SymLogNorm(linthresh=0.2, linscale=0.2,
589
- base=np.e, vmin=-1, vmax=1)
590
- cmap = cmap(trfm(np.linspace(-0.6, 0.6, cmap.N)))
591
- cmap = mpl.colors.ListedColormap(cmap)
592
- #
593
584
  VM = 1.0 # abs(np.percentile(C,[1,99])).max()
594
585
  im = ax.imshow(C, cmap=cmap, vmin=-VM, vmax=VM)
595
586
  # Colorbar
@@ -215,14 +215,15 @@ class FAUSt(DataSeries, StatPrint):
215
215
  - `store_u` : if False: only the current value is stored.
216
216
  - `kwargs` : passed on to ndarrays.
217
217
  """
218
- self.f = np.full((Ko+1,)+item_shape, nan, **kwargs)
219
- self.a = np.full((Ko+1,)+item_shape, nan, **kwargs)
218
+ fill_value = -99 if kwargs.get("dtype", None) is int else nan
219
+ self.f = np.full((Ko+1,)+item_shape, fill_value, **kwargs)
220
+ self.a = np.full((Ko+1,)+item_shape, fill_value, **kwargs)
220
221
  if store_s:
221
- self.s = np.full((Ko+1,)+item_shape, nan, **kwargs)
222
+ self.s = np.full((Ko+1,)+item_shape, fill_value, **kwargs)
222
223
  if store_u:
223
- self.u = np.full((K + 1,)+item_shape, nan, **kwargs)
224
+ self.u = np.full((K + 1,)+item_shape, fill_value, **kwargs)
224
225
  else:
225
- self.u = np.full((1,)+item_shape, nan, **kwargs)
226
+ self.u = np.full((1,)+item_shape, fill_value, **kwargs)
226
227
 
227
228
  # We could just store the input values for these attrs, but using
228
229
  # property => Won't be listed in vars(self), and un-writeable.
@@ -463,7 +463,7 @@ def plot_rank_histogram(stats):
463
463
 
464
464
  has_been_computed = \
465
465
  hasattr(stats, 'rh') and \
466
- not all(stats.rh.a[-1] == array(np.nan).astype(int))
466
+ not all(stats.rh.a[-1] == array(-99))
467
467
 
468
468
  fig, ax = place.freshfig("Rank histogram", figsize=(6, 3))
469
469
  ax.set_title('(Mean of marginal) rank histogram (_a)')
@@ -52,7 +52,8 @@ class SparseSpace(dict):
52
52
  The most important method is `nest`,
53
53
  which is used (by `xpSpace.table_tree`) to print and plot results.
54
54
  This is essentially a "groupby" operation, and indeed the case could
55
- be made that this class should be replaced by `pandas.DataFrame`.
55
+ be made that this class should be replaced by `pandas.DataFrame`,
56
+ or better yet: <https://github.com/pydata/xarray>.
56
57
 
57
58
  The `__getitem__` is quite flexible, allowing accessing by:
58
59
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dapper
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: DAPPER benchmarks the performance of data assimilation (DA) methods.
5
5
  Author: Patrick N. Raanes
6
6
  Author-email: patrick.n.raanes@gmail.com
@@ -14,13 +14,14 @@ Classifier: Topic :: Scientific/Engineering :: Mathematics
14
14
  Classifier: Programming Language :: Python :: 3
15
15
  Classifier: License :: OSI Approved :: MIT License
16
16
  Classifier: Operating System :: OS Independent
17
- Requires-Python: >=3.7
17
+ Requires-Python: >=3.9
18
18
  Description-Content-Type: text/markdown
19
19
  Provides-Extra: Qt
20
- Provides-Extra: dev
20
+ Provides-Extra: debug
21
21
  Provides-Extra: test
22
22
  Provides-Extra: lint
23
23
  Provides-Extra: build
24
+ Provides-Extra: dev
24
25
  License-File: LICENCE.txt
25
26
 
26
27
  It is usually best to install from source (github),
@@ -1,12 +1,12 @@
1
- scipy>=1.1
2
- ipython>=5.1
3
- jedi<0.18
1
+ scipy>=1.10
4
2
  jupyter
5
- matplotlib~=3.2.2
3
+ ipdb
4
+ ipython>=5.1
5
+ tornado==6.1
6
+ matplotlib~=3.7
6
7
  mpl-tools==0.2.50
7
8
  tqdm~=4.31
8
9
  pyyaml
9
- ipdb
10
10
  colorama~=0.4.1
11
11
  tabulate~=0.8.3
12
12
  dill==0.3.2
@@ -24,6 +24,11 @@ twine
24
24
  pdoc
25
25
  jupytext
26
26
 
27
+ [debug]
28
+ line_profiler
29
+ pre-commit
30
+ pdbpp>=0.10.3
31
+
27
32
  [dev]
28
33
  line_profiler
29
34
  pre-commit
@@ -49,6 +49,7 @@ print(xp.avrgs.tabulate(['rmse.a', 'rmv.a']))
49
49
 
50
50
  # #### Replay liveplotters
51
51
 
52
+ # Does not work on Colab
52
53
  xp.stats.replay(
53
54
  # speed=.6
54
55
  )
@@ -17,16 +17,18 @@ from setuptools import find_packages, setup
17
17
  DOCLINES = __doc__.split('\n')
18
18
 
19
19
  # Dependencies
20
+ # Why pin?: https://github.com/nansencenter/DAPPER/issues/41#issuecomment-1381616971
20
21
  INSTALL_REQUIRES = [
21
- 'scipy>=1.1',
22
- 'ipython>=5.1',
23
- 'jedi<0.18', # ipython/issues/12740
22
+ 'scipy>=1.10',
24
23
  'jupyter',
25
- 'matplotlib~=3.2.2', # use Colab's version (newer wont work there)
24
+ 'ipdb',
25
+ 'ipython>=5.1',
26
+ # 'jedi<0.18', # ipython/issues/12740
27
+ 'tornado==6.1', # 6.2 breaks Jupyter plots (tested on Mac, Linux)
28
+ 'matplotlib~=3.7',
26
29
  'mpl-tools==0.2.50',
27
30
  'tqdm~=4.31',
28
31
  'pyyaml',
29
- 'ipdb',
30
32
  'colorama~=0.4.1',
31
33
  'tabulate~=0.8.3',
32
34
  'dill==0.3.2', # >=0.3.1.1 for dataclass. Pin vers. to equal GCP.
@@ -39,7 +41,7 @@ INSTALL_REQUIRES = [
39
41
 
40
42
  EXTRAS = {
41
43
  'Qt': ['PyQt5', 'qtpy'],
42
- 'dev': ['line_profiler', 'pre-commit', 'pdbpp>=0.10.3'],
44
+ 'debug': ['line_profiler', 'pre-commit', 'pdbpp>=0.10.3'],
43
45
  'test': ['tox', 'coverage>=5.1', 'pytest',
44
46
  'pytest-cov', 'pytest-sugar', 'pytest-benchmark',
45
47
  'pytest-clarity', 'pytest-xdist', 'pytest-timeout'],
@@ -48,7 +50,7 @@ EXTRAS = {
48
50
  # 'flake8-docstrings', 'flake8-bugbear', 'flake8-comprehensions'],
49
51
  'build': ['twine', 'pdoc', 'jupytext'],
50
52
  }
51
- EXTRAS['dev'] += EXTRAS['test'] + EXTRAS['lint'] + EXTRAS['build']
53
+ EXTRAS['dev'] = EXTRAS['debug'] + EXTRAS['test'] + EXTRAS['lint'] + EXTRAS['build']
52
54
 
53
55
 
54
56
  def find_version(*file_paths):
@@ -90,7 +92,7 @@ setup(
90
92
  # >=3.7 for dataclass, capture_output, dict ordering, np>=1.20.
91
93
  # ==3.7 for Colab
92
94
  # ==3.9 for the DAPPER/GCP cluster, since dill isn't compat. across versions.
93
- python_requires='>=3.7',
95
+ python_requires='>=3.9',
94
96
  install_requires=INSTALL_REQUIRES,
95
97
  extras_require=EXTRAS,
96
98
 
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
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
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