corelp 1.0.37__tar.gz → 1.0.39__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 (69) hide show
  1. {corelp-1.0.37 → corelp-1.0.39}/PKG-INFO +1 -6
  2. {corelp-1.0.37 → corelp-1.0.39}/pyproject.toml +5 -7
  3. corelp-1.0.39/src/corelp/__init__.py +36 -0
  4. corelp-1.0.39/src/corelp/modules/Path_LP/functions/__template__.py +19 -0
  5. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/Path_LP/test_Path.py +1 -1
  6. corelp-1.0.39/src/corelp/modules/debug_LP/functions/__template__.py +19 -0
  7. corelp-1.0.39/src/corelp/modules/folder_LP/functions/__template__.py +19 -0
  8. corelp-1.0.39/src/corelp/modules/getmodule_LP/functions/__template__.py +19 -0
  9. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/getmodule_LP/getmodule.py +16 -33
  10. corelp-1.0.39/src/corelp/modules/icon_LP/functions/__template__.py +19 -0
  11. corelp-1.0.39/src/corelp/modules/icon_LP/icon.py +46 -0
  12. corelp-1.0.39/src/corelp/modules/icon_LP/test_icon.py +79 -0
  13. corelp-1.0.39/src/corelp/modules/kwargsself_LP/functions/__template__.py +19 -0
  14. corelp-1.0.39/src/corelp/modules/prop_LP/functions/__template__.py +19 -0
  15. corelp-1.0.39/src/corelp/modules/rfrom_LP/functions/__init__.py +0 -0
  16. corelp-1.0.39/src/corelp/modules/rfrom_LP/functions/__template__.py +19 -0
  17. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/rfrom_LP/test_rfrom.py +1 -1
  18. corelp-1.0.39/src/corelp/modules/selfkwargs_LP/__init__.py +0 -0
  19. corelp-1.0.39/src/corelp/modules/selfkwargs_LP/functions/__init__.py +0 -0
  20. corelp-1.0.39/src/corelp/modules/selfkwargs_LP/functions/__template__.py +19 -0
  21. corelp-1.0.39/src/corelp/modules/test_LP/__init__.py +0 -0
  22. corelp-1.0.39/src/corelp/modules/test_LP/functions/__init__.py +0 -0
  23. corelp-1.0.39/src/corelp/modules/test_LP/functions/__template__.py +19 -0
  24. corelp-1.0.39/src/corelp/py.typed +0 -0
  25. corelp-1.0.39/src/corelp/routines/__init__.py +0 -0
  26. corelp-1.0.37/src/corelp/__init__.py +0 -29
  27. corelp-1.0.37/src/corelp/modules/Section_LP/Section.py +0 -176
  28. corelp-1.0.37/src/corelp/modules/Section_LP/test_Section.py +0 -43
  29. corelp-1.0.37/src/corelp/modules/main_LP/main.py +0 -251
  30. corelp-1.0.37/src/corelp/modules/main_LP/test_main.py +0 -74
  31. corelp-1.0.37/src/corelp/modules/print_LP/print.py +0 -326
  32. corelp-1.0.37/src/corelp/modules/print_LP/test_print.py +0 -108
  33. corelp-1.0.37/src/corelp/modules/user_inputs_LP/test_user_inputs.py +0 -46
  34. corelp-1.0.37/src/corelp/modules/user_inputs_LP/user_inputs.py +0 -87
  35. corelp-1.0.37/src/corelp/modules.json +0 -80
  36. corelp-1.0.37/src/corelp/pythonLP.png:Zone.Identifier +0 -0
  37. corelp-1.0.37/src/corelp/scripts.json +0 -1
  38. {corelp-1.0.37 → corelp-1.0.39}/README.md +0 -0
  39. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/icon_pythonLP.png +0 -0
  40. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/Path_LP/Path.py +0 -0
  41. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/Path_LP/__init__.py +0 -0
  42. {corelp-1.0.37/src/corelp/modules/Section_LP → corelp-1.0.39/src/corelp/modules/Path_LP/functions}/__init__.py +0 -0
  43. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/__init__.py +0 -0
  44. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/debug_LP/__init__.py +0 -0
  45. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/debug_LP/debug.py +0 -0
  46. {corelp-1.0.37/src/corelp/modules/folder_LP → corelp-1.0.39/src/corelp/modules/debug_LP/functions}/__init__.py +0 -0
  47. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/debug_LP/test_debug.py +0 -0
  48. {corelp-1.0.37/src/corelp/modules/getmodule_LP → corelp-1.0.39/src/corelp/modules/folder_LP}/__init__.py +0 -0
  49. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/folder_LP/folder.py +0 -0
  50. {corelp-1.0.37/src/corelp/modules/kwargsself_LP → corelp-1.0.39/src/corelp/modules/folder_LP/functions}/__init__.py +0 -0
  51. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/folder_LP/test_folder.py +0 -0
  52. {corelp-1.0.37/src/corelp/modules/main_LP → corelp-1.0.39/src/corelp/modules/getmodule_LP}/__init__.py +0 -0
  53. {corelp-1.0.37/src/corelp/modules/print_LP → corelp-1.0.39/src/corelp/modules/getmodule_LP/functions}/__init__.py +0 -0
  54. {corelp-1.0.37/src/corelp/modules/prop_LP → corelp-1.0.39/src/corelp/modules/icon_LP}/__init__.py +0 -0
  55. {corelp-1.0.37/src/corelp/modules/rfrom_LP → corelp-1.0.39/src/corelp/modules/icon_LP/functions}/__init__.py +0 -0
  56. {corelp-1.0.37/src/corelp/modules/selfkwargs_LP → corelp-1.0.39/src/corelp/modules/kwargsself_LP}/__init__.py +0 -0
  57. {corelp-1.0.37/src/corelp/modules/test_LP → corelp-1.0.39/src/corelp/modules/kwargsself_LP/functions}/__init__.py +0 -0
  58. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/kwargsself_LP/kwargsself.py +0 -0
  59. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/kwargsself_LP/test_kwargsself.py +0 -0
  60. {corelp-1.0.37/src/corelp/modules/user_inputs_LP → corelp-1.0.39/src/corelp/modules/prop_LP}/__init__.py +0 -0
  61. {corelp-1.0.37/src/corelp/scripts → corelp-1.0.39/src/corelp/modules/prop_LP/functions}/__init__.py +0 -0
  62. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/prop_LP/prop.py +0 -0
  63. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/prop_LP/test_prop.py +0 -0
  64. /corelp-1.0.37/src/corelp/py.typed → /corelp-1.0.39/src/corelp/modules/rfrom_LP/__init__.py +0 -0
  65. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/rfrom_LP/rfrom.py +0 -0
  66. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/selfkwargs_LP/selfkwargs.py +0 -0
  67. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/selfkwargs_LP/test_selfkwargs.py +0 -0
  68. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/test_LP/test.py +0 -0
  69. {corelp-1.0.37 → corelp-1.0.39}/src/corelp/modules/test_LP/test_test.py +0 -0
@@ -1,13 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: corelp
3
- Version: 1.0.37
3
+ Version: 1.0.39
4
4
  Summary: A library that gathers core functions for python programming.
5
- Requires-Dist: joblib ; extra == 'script'
6
- Requires-Dist: rich ; extra == 'script'
7
- Requires-Dist: marimo ; extra == 'script'
8
5
  Requires-Python: >=3.12
9
- Provides-Extra: lib
10
- Provides-Extra: script
11
6
  Description-Content-Type: text/markdown
12
7
 
13
8
  # coreLP
@@ -1,23 +1,21 @@
1
1
  [project]
2
2
  name = "corelp"
3
- version = "1.0.37"
3
+ version = "1.0.39"
4
4
  description = "A library that gathers core functions for python programming."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
7
7
  dependencies = []
8
8
 
9
9
  [build-system]
10
- requires = [ "uv_build>=0.8.8,<0.9.0",]
10
+ requires = [ "uv_build",]
11
11
  build-backend = "uv_build"
12
12
 
13
13
  [dependency-groups]
14
- dev = [ "pytest",]
14
+ tests = [ "pytest",]
15
15
  docs = [ "sphinx", "sphinx-design", "sphinx-rtd-theme", "toml",]
16
16
  anaconda = [ "ipykernel", "spyder-kernels",]
17
17
 
18
- [project.optional-dependencies]
19
- lib = []
20
- script = [ "joblib", "rich", "marimo",]
21
-
22
18
  [tool.uv]
23
19
  required-environments = [ "sys_platform == 'linux' and platform_machine == 'x86_64'", "sys_platform == 'win32' and (platform_machine == 'AMD64' or platform_machine == 'x86_64')",]
20
+
21
+ [tool.uv.sources]
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Date : 2025-08-25
4
+ # Author : Lancelot PINCET
5
+ # GitHub : https://github.com/LancelotPincet
6
+ # Library : coreLP
7
+
8
+ """
9
+ A library that gathers core functions for python programming.
10
+ """
11
+
12
+
13
+
14
+ # %% Source code
15
+ sources = {
16
+ 'Path': 'corelp.modules.Path_LP.Path',
17
+ 'debug': 'corelp.modules.debug_LP.debug',
18
+ 'folder': 'corelp.modules.folder_LP.folder',
19
+ 'getmodule': 'corelp.modules.getmodule_LP.getmodule',
20
+ 'icon': 'corelp.modules.icon_LP.icon',
21
+ 'kwargsself': 'corelp.modules.kwargsself_LP.kwargsself',
22
+ 'prop': 'corelp.modules.prop_LP.prop',
23
+ 'rfrom': 'corelp.modules.rfrom_LP.rfrom',
24
+ 'selfkwargs': 'corelp.modules.selfkwargs_LP.selfkwargs',
25
+ 'test': 'corelp.modules.test_LP.test'
26
+ }
27
+
28
+
29
+
30
+ # %% Lazy imports
31
+
32
+ if __name__ == "__main__":
33
+ from modules.getmodule_LP.getmodule import getmodule # type: ignore
34
+ else :
35
+ from .modules.getmodule_LP.getmodule import getmodule
36
+ __getattr__, __all__ = getmodule(sources)
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -15,7 +15,7 @@ Path : This function is a wrapper around the pathlib.Path and returns a compatib
15
15
 
16
16
 
17
17
  # %% Libraries
18
- from corelp import print, debug
18
+ from corelp import debug
19
19
  import pytest
20
20
  from corelp import Path
21
21
  debug_folder = debug(__file__)
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -13,21 +13,19 @@ This function is to be used in a library __init__ file. It creates lazy imports
13
13
 
14
14
 
15
15
  # %% Libraries
16
- from pathlib import Path
17
- import json
18
16
  import importlib
19
17
 
20
18
 
21
19
 
22
20
  # %% Function
23
- def getmodule(file) :
24
- '''
25
- This function is to be used in a library __init__ file. It creates lazy imports of the module imported and defines __getattr__ and __all__ for this library.
21
+ def getmodule(sources) :
22
+ f'''
23
+ This function is to be used in a library __init__ file. It creates lazy imports of the module imported and defines __getattr__ and __all__ for this library from a sources dictionnary dict("object"="path2object").
26
24
 
27
25
  Parameters
28
26
  ----------
29
- file : str
30
- __file__ string in the __init__.py file.
27
+ sources : dict
28
+ source dictionnary.
31
29
 
32
30
  Returns
33
31
  -------
@@ -46,48 +44,33 @@ def getmodule(file) :
46
44
  >>> from corelp import getmodule
47
45
  ...
48
46
  >>> # In __init__.py file
49
- ... __getattr__, __all__ = getmodule(__file__)
47
+ ... __getattr__, __all__ = getmodule(sources)
50
48
  '''
51
49
 
52
- # Get paths
53
- file = Path(file)
54
- libfolder = file.parent
55
- name = libfolder.name
56
- modulesjson = libfolder / 'modules.json'
57
- scriptsjson = libfolder / 'scripts.json'
58
-
59
- # Get dicts
60
- with open(modulesjson, "r") as file :
61
- modules = json.load(file)
62
- with open(scriptsjson, "r") as file :
63
- scripts = json.load(file)
50
+ # Name
51
+ first_key = list(sources.keys())[0]
52
+ name = sources[first_key].split('.')[0]
64
53
 
65
54
  # Objects to return
66
55
  _lazy = {}
67
- _all = [module for module in modules] + [script for script in scripts]
56
+ _all = list(sources.keys())
68
57
  def _getattr(attr) :
69
-
58
+
70
59
  # Cached
71
60
  if attr in _lazy:
72
61
  return _lazy[attr]
73
62
 
74
63
  try :
75
- module = modules.get(attr, None)
76
- funcstring = "module"
77
- if module is None :
78
- module = scripts.get(attr, None)
79
- funcstring = "script"
64
+ module = sources.get(attr, None)
80
65
  if module is None :
81
- raise KeyError(f"{attr} was not found in json files")
66
+ raise KeyError(f"{attr} was not found in sources")
82
67
  except KeyError:
83
68
  raise AttributeError(f'module {name} has no attribute {attr}')
84
- path2module = module[funcstring].replace('/', '.')
85
- obj_name = module["object"]
86
69
 
87
- mod = importlib.import_module(f"{name}.{path2module}")
88
- obj = getattr(mod, obj_name, None)
70
+ mod = importlib.import_module(module)
71
+ obj = getattr(mod, attr, None)
89
72
  if obj is None :
90
- raise AttributeError(f"module {name}.{path2module} has no attribute {obj_name}")
73
+ raise AttributeError(f"module {module} has no object {attr}")
91
74
  _lazy[attr] = obj # Cache it
92
75
  return obj
93
76
 
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Date : 2026-01-23
4
+ # Author : Lancelot PINCET
5
+ # GitHub : https://github.com/LancelotPincet
6
+ # Library : coreLP
7
+ # Module : icon
8
+
9
+ """
10
+ This module gives the path to pythonLP icon.
11
+ """
12
+
13
+
14
+
15
+ # %% Libraries
16
+ from pathlib import Path
17
+
18
+
19
+
20
+
21
+ # %% Function
22
+ def icon() :
23
+ '''
24
+ This module gives the path to pythonLP icon.
25
+
26
+ Returns
27
+ -------
28
+ path : pathlib.Path
29
+ path to icon.
30
+
31
+ Examples
32
+ --------
33
+ >>> from corelp import icon
34
+ ...
35
+ >>> icon()
36
+ '''
37
+
38
+ folder = Path(__file__).parents[2] # corelp / modules / icon_LP / icon.py
39
+ return folder / 'icon_pythonLP.png'
40
+
41
+
42
+
43
+ # %% Test function run
44
+ if __name__ == "__main__":
45
+ from corelp import test
46
+ test(__file__)
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Date : 2026-01-23
4
+ # Author : Lancelot PINCET
5
+ # GitHub : https://github.com/LancelotPincet
6
+ # Library : coreLP
7
+ # Module : icon
8
+
9
+ """
10
+ This file allows to test icon
11
+
12
+ icon : This module gives the path to pythonLP icon.
13
+ """
14
+
15
+
16
+
17
+ # %% Libraries
18
+ from corelp import print, debug
19
+ import pytest
20
+ from corelp import icon
21
+ debug_folder = debug(__file__)
22
+
23
+
24
+
25
+ # %% Function test
26
+ def test_function() :
27
+ '''
28
+ Test icon function
29
+ '''
30
+ print('Hello world!')
31
+
32
+
33
+
34
+ # %% Instance fixture
35
+ @pytest.fixture()
36
+ def instance() :
37
+ '''
38
+ Create a new instance at each test function
39
+ '''
40
+ return icon()
41
+
42
+ def test_instance(instance) :
43
+ '''
44
+ Test on fixture
45
+ '''
46
+ pass
47
+
48
+
49
+ # %% Returns test
50
+ @pytest.mark.parametrize("args, kwargs, expected, message", [
51
+ #([], {}, None, ""),
52
+ ([], {}, None, ""),
53
+ ])
54
+ def test_returns(args, kwargs, expected, message) :
55
+ '''
56
+ Test icon return values
57
+ '''
58
+ assert icon(*args, **kwargs) == expected, message
59
+
60
+
61
+
62
+ # %% Error test
63
+ @pytest.mark.parametrize("args, kwargs, error, error_message", [
64
+ #([], {}, None, ""),
65
+ ([], {}, None, ""),
66
+ ])
67
+ def test_errors(args, kwargs, error, error_message) :
68
+ '''
69
+ Test icon error values
70
+ '''
71
+ with pytest.raises(error, match=error_message) :
72
+ icon(*args, **kwargs)
73
+
74
+
75
+
76
+ # %% Test function run
77
+ if __name__ == "__main__":
78
+ from corelp import test
79
+ test(__file__)
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
@@ -15,7 +15,7 @@ rfrom : This function allows to do a relative import that works in module and sc
15
15
 
16
16
 
17
17
  # %% Libraries
18
- from corelp import print, debug
18
+ from corelp import debug
19
19
  import pytest
20
20
  from corelp import rfrom
21
21
  debug_folder = debug(__file__)
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
File without changes
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Author : Lancelot PINCET
4
+ # GitHub : https://github.com/LancelotPincet
5
+
6
+
7
+
8
+ # %% Libraries
9
+
10
+
11
+
12
+
13
+ # %% Function
14
+ def temp(**kwargs) :
15
+ '''
16
+ TODO
17
+ '''
18
+
19
+ print('Hello world!')
File without changes
File without changes
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- # Date : 2025-08-25
4
- # Author : Lancelot PINCET
5
- # GitHub : https://github.com/LancelotPincet
6
- # Library : coreLP
7
-
8
- """
9
- A library that gathers core functions for python programming.
10
- """
11
-
12
-
13
-
14
- from pathlib import Path as PathlibPath
15
-
16
- # %% Lazy imports
17
- if __name__ == "__main__":
18
- from modules.getmodule_LP.getmodule import getmodule # type: ignore
19
- else :
20
- from .modules.getmodule_LP.getmodule import getmodule
21
- __getattr__, __all__ = getmodule(__file__)
22
- icon = PathlibPath(__file__).parent / "icon_pythonLP.png"
23
-
24
-
25
-
26
- # %% Test function run
27
- if __name__ == "__main__":
28
- from corelp import test
29
- test(__file__)