cdxcore 0.1.9__py3-none-any.whl → 0.1.11__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 cdxcore might be problematic. Click here for more details.

cdxcore/subdir.py CHANGED
@@ -339,7 +339,6 @@ Documentation
339
339
  -------------
340
340
  """
341
341
 
342
-
343
342
  import os as os
344
343
  import uuid as uuid
345
344
  import threading as threading
@@ -355,11 +354,9 @@ from enum import Enum
355
354
  from functools import update_wrapper
356
355
 
357
356
  import json as json
358
- import jsonpickle as jsonpickle
359
- import jsonpickle.ext.numpy as jsonpickle_numpy
360
357
  import gzip as gzip
361
358
  import blosc as blosc
362
-
359
+ import sys as sys
363
360
  from .err import verify, error, warn, fmt as txtfmt
364
361
  from .pretty import PrettyObject
365
362
  from .verbose import Context
@@ -372,7 +369,16 @@ from .uniquehash import unique_hash48, UniqueLabel, NamedUniqueHash
372
369
  :meta private:
373
370
  compression
374
371
  """
375
- jsonpickle_numpy.register_handlers()
372
+
373
+ def _import_jsonpickle():
374
+ """ For some dodgy reason importing `jsonpickle` normally causes my tests to fail with a recursion error """
375
+ jsonpickle = sys.modules.get('jsonpickle', None)
376
+ if jsonpickle is None:
377
+ import jsonpickle as jsonpickle
378
+ import jsonpickle.ext.numpy as jsonpickle_numpy
379
+ jsonpickle_numpy.register_handlers()
380
+ return jsonpickle
381
+
376
382
  BLOSC_MAX_BLOCK = 2147483631
377
383
  BLOSC_MAX_USE = 1147400000 # ... blosc really cannot handle large files
378
384
  #
@@ -1518,6 +1524,7 @@ class SubDir(object):
1518
1524
  return ok
1519
1525
  # read
1520
1526
  if fmt == Format.JSON_PICKLE:
1527
+ jsonpickle = _import_jsonpickle()
1521
1528
  return jsonpickle.decode( f.read() )
1522
1529
  else:
1523
1530
  assert fmt == Format.JSON_PLAIN, ("Internal error: unknown Format", fmt)
@@ -1779,7 +1786,7 @@ class SubDir(object):
1779
1786
  # write to temp file, then rename into target file
1780
1787
  # this reduces collision when i/o operations are slow
1781
1788
  full_file_name = self.full_file_name(file,ext=ext)
1782
- tmp_file = unique_hash48( [ file, uuid.getnode(), os.getpid(), threading.get_ident(), datetime.datetime.now() ] )
1789
+ tmp_file = unique_hash48( file, uuid.getnode(), os.getpid(), threading.get_ident(), datetime.datetime.now() )
1783
1790
  tmp_i = 0
1784
1791
  fullTmpFile = self.full_file_name(tmp_file,ext="tmp" if not ext=="tmp" else "_tmp")
1785
1792
  while os.path.exists(fullTmpFile):
@@ -1935,6 +1942,7 @@ class SubDir(object):
1935
1942
  if not version is None:
1936
1943
  f.write("# " + version + "\n")
1937
1944
  if fmt == Format.JSON_PICKLE:
1945
+ jsonpickle = _import_jsonpickle()
1938
1946
  f.write( jsonpickle.encode(obj) )
1939
1947
  else:
1940
1948
  assert fmt == Format.JSON_PLAIN, ("Internal error: invalid Format", fmt)
cdxcore/version.py CHANGED
@@ -498,7 +498,7 @@ class Version(object):
498
498
  """
499
499
  Compute hash for use with :class:`cdxcore.uniquehash.UniqueHash`.
500
500
  """
501
- return self.unique_id(max_len=uniqueHash.length)
501
+ return self.unique_id(max_len=unique_hash.length)
502
502
 
503
503
  # =======================================================
504
504
  # @version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cdxcore
3
- Version: 0.1.9
3
+ Version: 0.1.11
4
4
  Summary: Basic Python Tools; upgraded cdxbasics
5
5
  Author-email: Hans Buehler <github@buehler.london>
6
6
  License-Expression: MIT
@@ -0,0 +1,36 @@
1
+ cdxcore/__init__.py,sha256=QkwdykAwr_r64uUVCGkEd6qZ7xPa-uKA44rrlJGMtKI,127
2
+ cdxcore/config.py,sha256=YnIEJVFtMZ5EHlwzaB2JsSkCPhWPvEw9QSpe6mof_V4,98472
3
+ cdxcore/crman.py,sha256=83oKpuzNy98ObpmUeJg2McGRxaLk2AP5lN1yd1F9ueQ,5759
4
+ cdxcore/err.py,sha256=SIJMBXKXYI_hiysv5iSPRy0w_BbxyTDPbNEs56Y94Rk,14541
5
+ cdxcore/jcpool.py,sha256=uQyOBmOz7EPBsXU96J6Zb2Y-YmA2GwfsRYj6NzFEPKc,27335
6
+ cdxcore/pretty.py,sha256=iUpgUCwmI8yb5O-WZFJEk3QvNYcj_GIFHUgZ5lK8F2I,17082
7
+ cdxcore/pretty.py_bak.py,sha256=JgWr5044HzCNGG0wKSAWlWiPRs7-bNzkwiKH0T3n0to,28658
8
+ cdxcore/subdir.py,sha256=NScdtAG-Wrt0D7_FcpO62qzII4bS9ABXFerkILPg4uE,173864
9
+ cdxcore/uniquehash.py,sha256=g-D8pqPIppSdRq5QfdE5aP3paZ-NkXWHfnn-uNB7fmg,50648
10
+ cdxcore/util.py,sha256=0fp0EzeZvnje1Q7SUcgB_JtKpsYgGTfvlHVfq0mE_ug,31930
11
+ cdxcore/verbose.py,sha256=nKNoZQwl3eF1zBf-JZwPC-lL9d_o5mJsDsSUMixTMLw,29882
12
+ cdxcore/version.py,sha256=m30oI2Ortg44dKSim-sIoeh9PioD1FWsSfVEP5rubhk,27173
13
+ cdxcore-0.1.11.dist-info/licenses/LICENSE,sha256=M-cisgK9kb1bqVRJ7vrCxHcMQQfDxdY3c2YFJJWfNQg,1090
14
+ docs/source/conf.py,sha256=Owctibh5XcSpSNcrpOr3ROIDjoklmFVrMhu8cOSe50o,4180
15
+ tests/test_config.py,sha256=0U9vFIKDex0Il-7Vc_C4saAuXoHIsdQ8YhhS8AO7FQI,15950
16
+ tests/test_crman.py,sha256=hek6a-51-i6o5XhDa1vqFjUKYJggJ3pnb0Am0wunhwY,1692
17
+ tests/test_err.py,sha256=VbVmbaB6o49G-n3t7yuJ4M0d9pyUQyJuVDqK-xRrLo8,3458
18
+ tests/test_jcpool.py,sha256=vgKt5wTz1BXt8ruubtE2qINIlqH507IoTC1lpP7nejQ,4733
19
+ tests/test_pretty.py,sha256=5TmF7c1TRDSN-YR5yo04SiLJiW3bZaxpXHJ-4ZEO8hg,11952
20
+ tests/test_subdir.py,sha256=tO-zoOIKQtZEMpQM-tsrisyLRmMH8txCSOzh6jPRhYY,11721
21
+ tests/test_uniquehash.py,sha256=ldoQLT77R7odMAok4Yo3jmiUIH3VPHKoSiSLKbbM_mo,24907
22
+ tests/test_util.py,sha256=DZ6AlPFDNNlkqP5MlM1BUwmBJvEj4WCFqZcdh_Isflw,19955
23
+ tests/test_verbose.py,sha256=7JGCLKHU1HovO6UYSLLcJQxjaZxYJejS1fl8O3Sgk9w,5037
24
+ tests/test_version.py,sha256=eq7bNT0GefbUkwEzo658UUxgBCiR7CDhuIxAmnnI-qQ,4658
25
+ tmp/deferred.py,sha256=TirvzxYXWnZkOWuEMB7qsf6auilfy4VD_zPknYCjrnw,9401
26
+ tmp/dynaplot.py,sha256=kwrH_WccpJcfS7n_gzdAr4QxQobvIZZrrxgdsKLKfj0,48552
27
+ tmp/filelock.py,sha256=HqnHZhSCESaOA3ClrdWPW_GZpyo7c3VRSEofAV-khKM,18137
28
+ tmp/np.py,sha256=2MynhiaTfmx984Gz7TwfZH3t7GCmCAQiyeWzDDCL6_k,47686
29
+ tmp/npio.py,sha256=4Kwp5H4MgKHkOEhu4UJ5CcwpM7Pm8UFkaoL5FvOEFRI,10310
30
+ tmp/sharedarray.py,sha256=JuHuSlxA0evD0a-bEZgTFrfdlVPMgzfQNgfSjr1212w,11484
31
+ up/git_message.py,sha256=EfSH7Pit3ZoCiRqSMwRCUN_QyuwreU4LTIyGSutBlm4,123
32
+ up/pip_modify_setup.py,sha256=Esaml4yA9tFsqxLhk5bWSwvKCURONjQqfyChgFV2TSY,1584
33
+ cdxcore-0.1.11.dist-info/METADATA,sha256=q8JLhUt0fOG-sxNyd_8GJKg-DBhFwjBOVaEpo00bVbE,754
34
+ cdxcore-0.1.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
35
+ cdxcore-0.1.11.dist-info/top_level.txt,sha256=phNSwCyJFe7UP2YMoi8o6ykhotatlIbJHjTp9EHM51k,26
36
+ cdxcore-0.1.11.dist-info/RECORD,,
@@ -1,6 +1,5 @@
1
1
  cdxcore
2
2
  docs
3
- docs2
4
3
  tests
5
4
  tmp
6
5
  up
tests/test_config.py CHANGED
@@ -4,7 +4,6 @@ Created on Tue Apr 14 21:24:52 2020
4
4
  @author: hansb
5
5
  """
6
6
 
7
-
8
7
  import unittest as unittest
9
8
  import dataclasses as dataclasses
10
9
  import sys as sys
@@ -12,7 +11,6 @@ import os as os
12
11
  import pickle as pickle
13
12
  import tempfile as tempfile
14
13
  import shutil as shutil
15
- sys.setrecursionlimit(100)
16
14
 
17
15
  def import_local():
18
16
  """
@@ -37,7 +35,7 @@ def import_local():
37
35
  if name[:len(me)] == me:
38
36
  imp.reload(mdata)
39
37
  print("Reloaded", name)
40
- import_local()
38
+ #import_local()
41
39
 
42
40
  from cdxcore.config import Config, Int, Float
43
41
  from cdxcore.pretty import PrettyObject as pdct
tests/test_crman.py CHANGED
@@ -29,7 +29,7 @@ def import_local():
29
29
  if name[:len(me)] == me:
30
30
  imp.reload(mdata)
31
31
  print("Reloaded", name)
32
- import_local()
32
+ #import_local()
33
33
 
34
34
  from cdxcore.crman import CRMan
35
35
 
@@ -49,6 +49,4 @@ class Test(unittest.TestCase):
49
49
  self.assertEqual( crman.current, "" )
50
50
 
51
51
  if __name__ == '__main__':
52
- unittest.main()
53
-
54
-
52
+ unittest.main()
tests/test_err.py CHANGED
@@ -30,7 +30,7 @@ def import_local():
30
30
  if name[:len(me)] == me:
31
31
  imp.reload(mdata)
32
32
  print("Reloaded", name)
33
- import_local()
33
+ #import_local()
34
34
 
35
35
  from cdxcore.err import fmt, error, verify, warn, warn_if
36
36
 
tests/test_jcpool.py ADDED
@@ -0,0 +1,119 @@
1
+
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ Created on Tue Apr 14 21:24:52 2020
5
+ @author: hansb
6
+ """
7
+
8
+ import unittest as unittest
9
+
10
+ def import_local():
11
+ """
12
+ In order to be able to run our tests manually from the 'tests' directory
13
+ we force import from the local package.
14
+ We also force reloading all modules to make sure we are not running old code.
15
+ """
16
+ me = "cdxcore"
17
+ import os
18
+ import sys
19
+ cwd = os.getcwd()
20
+ if cwd[-len(me):] == me:
21
+ return
22
+ assert cwd[-5:] == "tests",("Expected current working directory to be in a 'tests' directory", cwd[-5:], "from", cwd)
23
+ assert cwd[-6] in ['/', '\\'],("Expected current working directory 'tests' to be lead by a '\\' or '/'", cwd[-6:], "from", cwd)
24
+ sys.path.insert( 0, cwd[:-6] )
25
+
26
+ # reload modules
27
+ import importlib as imp
28
+ modules = sys.modules.copy()
29
+ for name, mdata in modules.items():
30
+ if name[:len(me)] == me:
31
+ imp.reload(mdata)
32
+ print("Reloaded", name)
33
+ #import_local()
34
+
35
+ from cdxcore.jcpool import JCPool, Context
36
+ import numpy as np
37
+
38
+ class Test(unittest.TestCase):
39
+
40
+ def test_pool(self):
41
+
42
+ self.maxDiff = None
43
+
44
+ pool = JCPool(2)
45
+
46
+ class Channel(object):
47
+ """ utility to collect all traced messages """
48
+ def __init__(self):
49
+ self.messages = []
50
+ def __call__(self, msg, flush):
51
+ self.messages.append( msg )
52
+
53
+ def f( ticker, tdata, verbose : Context ):
54
+ # some made up results
55
+ q = np.quantile( tdata, 0.35, axis=0 )
56
+ tx = q[0]
57
+ ty = q[1]
58
+ # not in a unittest --> time.sleep( np.exp(tdata[0,0]) )
59
+ verbose.write(f"Result for {ticker}: {tx:.2f}, {ty:.2f}")
60
+ return tx, ty
61
+
62
+ np.random.seed(1231)
63
+ tickerdata =\
64
+ { 'SPY': np.random.normal(size=(1000,2)),
65
+ 'GLD': np.random.normal(size=(1000,2)),
66
+ 'BTC': np.random.normal(size=(1000,2))
67
+ }
68
+
69
+ # iterator mode
70
+ channel = Channel()
71
+ verbose_main = Context("all", channel=channel)
72
+
73
+ verbose_main.write("Launching analysis")
74
+ with pool.context( verbose_main ) as verbose:
75
+ for ticker, tx, ty in pool.parallel(
76
+ { ticker: pool.delayed(f)( ticker=ticker, tdata=tdata, verbose=verbose(2) )
77
+ for ticker, tdata in tickerdata.items() } ):
78
+ verbose.report(1,f"Returned {ticker} {tx:.2f}, {ty:.2f}")
79
+ verbose_main.write("Analysis done")
80
+
81
+ l = sorted( channel.messages )
82
+ self.assertEqual( str(l), r"['00: 01: Returned BTC -0.38, -0.42\n', '00: 01: Returned GLD -0.47, -0.42\n', '00: 01: Returned SPY -0.42, -0.41\n', '00: 02: Result for BTC: -0.38, -0.42\n', '00: 02: Result for GLD: -0.47, -0.42\n', '00: 02: Result for SPY: -0.42, -0.41\n', '00: Analysis done\n', '00: Launching analysis\n']")
83
+
84
+ # dict mode
85
+ channel = Channel()
86
+ verbose_main = Context("all", channel=channel)
87
+
88
+ verbose_main.write("Launching analysis")
89
+ with pool.context( verbose_main ) as verbose:
90
+ l = pool.parallel_to_dict(
91
+ { ticker: pool.delayed(f)( ticker=ticker, tdata=tdata, verbose=verbose(2) )
92
+ for ticker, tdata in tickerdata.items() } )
93
+ verbose_main.write("Analysis done")
94
+ self.assertEqual( type(l), dict )
95
+
96
+ l = sorted( channel.messages )
97
+ self.assertEqual( str(l), r"['00: 02: Result for BTC: -0.38, -0.42\n', '00: 02: Result for GLD: -0.47, -0.42\n', '00: 02: Result for SPY: -0.42, -0.41\n', '00: Analysis done\n', '00: Launching analysis\n']")
98
+
99
+ # list mode
100
+ channel = Channel()
101
+ verbose_main = Context("all", channel=channel)
102
+
103
+ verbose_main.write("Launching analysis")
104
+ with pool.context( verbose_main ) as verbose:
105
+ l = pool.parallel_to_list(
106
+ pool.delayed(f)( ticker=ticker, tdata=tdata, verbose=verbose(2) )
107
+ for ticker, tdata in tickerdata.items() )
108
+ verbose_main.write("Analysis done")
109
+ self.assertEqual( type(l), list )
110
+
111
+ l = sorted( channel.messages )
112
+ self.assertEqual( str(l), r"['00: 02: Result for BTC: -0.38, -0.42\n', '00: 02: Result for GLD: -0.47, -0.42\n', '00: 02: Result for SPY: -0.42, -0.41\n', '00: Analysis done\n', '00: Launching analysis\n']")
113
+
114
+ if __name__ == '__main__':
115
+ unittest.main()
116
+
117
+
118
+
119
+
tests/test_pretty.py CHANGED
@@ -37,7 +37,7 @@ def import_local():
37
37
  if name[:len(me)] == me:
38
38
  imp.reload(mdata)
39
39
  print("Reloaded", name)
40
- import_local()
40
+ #import_local()
41
41
 
42
42
  from cdxcore.pretty import PrettyObject, Sequence
43
43
 
tests/test_subdir.py CHANGED
@@ -28,7 +28,7 @@ def import_local():
28
28
  for name, mdata in modules.items():
29
29
  if name[:len(me)] == me:
30
30
  imp.reload(mdata)
31
- import_local()
31
+ #import_local()
32
32
 
33
33
  """
34
34
  Imports
tests/test_uniquehash.py CHANGED
@@ -32,7 +32,7 @@ def import_local():
32
32
  for name, mdata in modules.items():
33
33
  if name[:len(me)] == me:
34
34
  imp.reload(mdata)
35
- import_local()
35
+ #import_local()
36
36
 
37
37
  """
38
38
  Imports
tests/test_util.py CHANGED
@@ -31,7 +31,7 @@ def import_local():
31
31
  for name, mdata in modules.items():
32
32
  if name[:len(me)] == me:
33
33
  imp.reload(mdata)
34
- import_local()
34
+ #import_local()
35
35
 
36
36
  from cdxcore.util import is_function, is_atomic, is_float, is_filename
37
37
  from cdxcore.util import fmt, fmt_seconds, fmt_list, fmt_dict, fmt_big_number, fmt_digits, fmt_big_byte_number, fmt_datetime, fmt_date, fmt_time, fmt_timedelta, fmt_filename, DEF_FILE_NAME_MAP
tests/test_verbose.py CHANGED
@@ -29,7 +29,7 @@ def import_local():
29
29
  if name[:len(me)] == me:
30
30
  imp.reload(mdata)
31
31
  print("Reloaded", name)
32
- import_local()
32
+ #import_local()
33
33
 
34
34
  from cdxcore.verbose import Context
35
35
  from cdxcore.uniquehash import unique_hash32 as unique_hash
tests/test_version.py CHANGED
@@ -28,7 +28,7 @@ def import_local():
28
28
  for name, mdata in modules.items():
29
29
  if name[:len(me)] == me:
30
30
  imp.reload(mdata)
31
- import_local()
31
+ #import_local()
32
32
 
33
33
  """
34
34
  Imports
@@ -1,36 +0,0 @@
1
- cdxcore/__init__.py,sha256=a9wRC3XcpvMapllTNzJzr0MMUqBnYzI_lnm18xrxjj0,126
2
- cdxcore/config.py,sha256=YnIEJVFtMZ5EHlwzaB2JsSkCPhWPvEw9QSpe6mof_V4,98472
3
- cdxcore/crman.py,sha256=jOw40Bh6PkmEiabA7OS9NsqF-9viam3CBiKzPwxVkVw,5693
4
- cdxcore/err.py,sha256=SIJMBXKXYI_hiysv5iSPRy0w_BbxyTDPbNEs56Y94Rk,14541
5
- cdxcore/pretty.py,sha256=iUpgUCwmI8yb5O-WZFJEk3QvNYcj_GIFHUgZ5lK8F2I,17082
6
- cdxcore/pretty.py_bak.py,sha256=JgWr5044HzCNGG0wKSAWlWiPRs7-bNzkwiKH0T3n0to,28658
7
- cdxcore/subdir.py,sha256=bVABx_XpzZxmjoUQe0Brt2cEakhUONP1YA4tjPQ_LTk,173453
8
- cdxcore/uniquehash.py,sha256=g-D8pqPIppSdRq5QfdE5aP3paZ-NkXWHfnn-uNB7fmg,50648
9
- cdxcore/util.py,sha256=0fp0EzeZvnje1Q7SUcgB_JtKpsYgGTfvlHVfq0mE_ug,31930
10
- cdxcore/verbose.py,sha256=nKNoZQwl3eF1zBf-JZwPC-lL9d_o5mJsDsSUMixTMLw,29882
11
- cdxcore/version.py,sha256=tsLHRIgYYqrcqGJqz-bMEJuixWtTg1AQB_QwJrf6VDE,27172
12
- cdxcore-0.1.9.dist-info/licenses/LICENSE,sha256=M-cisgK9kb1bqVRJ7vrCxHcMQQfDxdY3c2YFJJWfNQg,1090
13
- docs/source/conf.py,sha256=Owctibh5XcSpSNcrpOr3ROIDjoklmFVrMhu8cOSe50o,4180
14
- docs2/source/conf.py,sha256=qxnJSrm3fV-llfvYlM0adpVD5pE_-8f8KqxH_ywe5UA,1276
15
- tests/test_config.py,sha256=JtIWCt0Q2PmmADfOGL42anONvuNowtxLK312xvWmRD4,15979
16
- tests/test_crman.py,sha256=hJlhuUuDrhzzJ3-ILUu_JCH842BJx9VGpEBCGrr4LOU,1697
17
- tests/test_err.py,sha256=AUfUUnksdbcHEuY-boyTW7fJHJ_w13zYpaPYrqwWbSo,3457
18
- tests/test_pretty.py,sha256=AJOI4jFnol_pY_wzF9baPNzx_J5pViVzZcRkWMDU4HY,11951
19
- tests/test_subdir.py,sha256=heLvzVl3qpgLq_rj4BY5odn6ZWk978kum1SznKQ4JMw,11720
20
- tests/test_uniquehash.py,sha256=kxmH5slL4NxmcCS2OOdbzqu9G2C3sm2SR4HkfIyromU,24906
21
- tests/test_util.py,sha256=MnM3EFp4p8MGw1qnhtBryHikHOt__zfOm65OMzN0zWE,19954
22
- tests/test_verbose.py,sha256=0EOVK5TWrwQwAjv08enaOTQZ6-_SQFMKXi3Nw6nSfMI,5036
23
- tests/test_version.py,sha256=xPF6eXD7J9VB_L1FGK5kgjXkrfD9gqHdj03zc9s6XIs,4657
24
- tmp/deferred.py,sha256=TirvzxYXWnZkOWuEMB7qsf6auilfy4VD_zPknYCjrnw,9401
25
- tmp/dynaplot.py,sha256=kwrH_WccpJcfS7n_gzdAr4QxQobvIZZrrxgdsKLKfj0,48552
26
- tmp/filelock.py,sha256=HqnHZhSCESaOA3ClrdWPW_GZpyo7c3VRSEofAV-khKM,18137
27
- tmp/jcpool.py,sha256=OzoXWBJKWaDgJm1OeUj9ERz9skvwslGOwNq0wbKtcFM,17222
28
- tmp/np.py,sha256=2MynhiaTfmx984Gz7TwfZH3t7GCmCAQiyeWzDDCL6_k,47686
29
- tmp/npio.py,sha256=4Kwp5H4MgKHkOEhu4UJ5CcwpM7Pm8UFkaoL5FvOEFRI,10310
30
- tmp/sharedarray.py,sha256=JuHuSlxA0evD0a-bEZgTFrfdlVPMgzfQNgfSjr1212w,11484
31
- up/git_message.py,sha256=EfSH7Pit3ZoCiRqSMwRCUN_QyuwreU4LTIyGSutBlm4,123
32
- up/pip_modify_setup.py,sha256=Esaml4yA9tFsqxLhk5bWSwvKCURONjQqfyChgFV2TSY,1584
33
- cdxcore-0.1.9.dist-info/METADATA,sha256=Bz8HlL06uVWBnx7Ie2ogBTgyk_RffCMbFC5QBt3MCNo,753
34
- cdxcore-0.1.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
35
- cdxcore-0.1.9.dist-info/top_level.txt,sha256=eG4oLGRzNN40tCfK5tJbzfT_I2M-9IPGVpbRwFWE9Wk,32
36
- cdxcore-0.1.9.dist-info/RECORD,,
docs2/source/conf.py DELETED
@@ -1,35 +0,0 @@
1
- # conf.py
2
- def set_path(source = "cdxcore"):
3
- import os, sys
4
- root_path = os.path.split(
5
- os.path.split(
6
- os.path.split( __file__ )[0] # 'source
7
- )[0] # 'docs'
8
- )[0] # 'packag
9
- assert root_path[-len(source):] == source, f"Conf.py '{__file__}': invalid source path '{root_path}'. Call 'make html' from the docs directory"
10
- sys.path.insert(0, root_path) # so your package is importable
11
-
12
-
13
- project = "cdxcore"
14
- author = "Hans Buehler"
15
- release = "0.1.0"
16
-
17
- set_path(project)
18
-
19
- extensions = [
20
- "sphinx.ext.autodoc", # core: import & docstrings
21
- "sphinx.ext.autosummary", # summary tables with links
22
- "sphinx.ext.napoleon", # Google/NumPy style docstrings
23
- "sphinx_autodoc_typehints", # nicer type hints formatting
24
- "sphinx.ext.mathjax", # math rendering
25
- ]
26
-
27
- autosummary_generate = True # make _autosummary files
28
- autodoc_typehints = "description" # show types in doc body instead of signature
29
- autodoc_member_order = "bysource" # preserve order in source file
30
- napoleon_google_docstring = True
31
- napoleon_numpy_docstring = True
32
- napoleon_use_param = True
33
- napoleon_use_rtype = False
34
- autoclass_content = "both"
35
-