stjames 0.0.29__py3-none-any.whl → 0.0.31__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 stjames might be problematic. Click here for more details.
- stjames/__init__.py +5 -6
- stjames/settings.py +7 -13
- stjames/workflows/__init__.py +8 -0
- stjames/workflows/conformer.py +90 -0
- stjames/workflows/fukui.py +13 -0
- stjames/workflows/pka.py +27 -0
- stjames/workflows/redox_potential.py +18 -0
- stjames/workflows/scan.py +38 -0
- stjames/workflows/tautomer.py +19 -0
- stjames/workflows/workflow.py +16 -0
- {stjames-0.0.29.dist-info → stjames-0.0.31.dist-info}/METADATA +1 -1
- stjames-0.0.31.dist-info/RECORD +32 -0
- stjames-0.0.29.dist-info/RECORD +0 -24
- /stjames/{corrections.py → correction.py} +0 -0
- /stjames/{methods.py → method.py} +0 -0
- /stjames/{modes.py → mode.py} +0 -0
- /stjames/{solvent_settings.py → solvent.py} +0 -0
- /stjames/{tasks.py → task.py} +0 -0
- {stjames-0.0.29.dist-info → stjames-0.0.31.dist-info}/LICENSE +0 -0
- {stjames-0.0.29.dist-info → stjames-0.0.31.dist-info}/WHEEL +0 -0
- {stjames-0.0.29.dist-info → stjames-0.0.31.dist-info}/top_level.txt +0 -0
stjames/__init__.py
CHANGED
|
@@ -8,15 +8,14 @@ from .scf_settings import *
|
|
|
8
8
|
from .int_settings import *
|
|
9
9
|
from .opt_settings import *
|
|
10
10
|
from .diis_settings import *
|
|
11
|
-
from .solvent_settings import *
|
|
12
11
|
from .thermochem_settings import *
|
|
13
12
|
from .grid_settings import *
|
|
14
|
-
from .solvent_settings import *
|
|
15
13
|
from .settings import *
|
|
16
14
|
|
|
17
|
-
from .
|
|
15
|
+
from .method import *
|
|
18
16
|
from .basis_set import *
|
|
19
|
-
from .
|
|
20
|
-
from .
|
|
21
|
-
from .
|
|
17
|
+
from .task import *
|
|
18
|
+
from .correction import *
|
|
19
|
+
from .solvent import *
|
|
20
|
+
from .mode import *
|
|
22
21
|
from .status import *
|
stjames/settings.py
CHANGED
|
@@ -4,23 +4,16 @@ import pydantic
|
|
|
4
4
|
|
|
5
5
|
from .base import Base, UniqueList
|
|
6
6
|
from .basis_set import BasisSet
|
|
7
|
-
from .
|
|
8
|
-
from .
|
|
9
|
-
from .
|
|
7
|
+
from .correction import Correction
|
|
8
|
+
from .method import Method
|
|
9
|
+
from .mode import Mode
|
|
10
10
|
from .opt_settings import OptimizationSettings
|
|
11
11
|
from .scf_settings import SCFSettings
|
|
12
|
-
from .
|
|
13
|
-
from .
|
|
12
|
+
from .solvent import SolventSettings
|
|
13
|
+
from .task import Task
|
|
14
14
|
from .thermochem_settings import ThermochemistrySettings
|
|
15
15
|
|
|
16
|
-
PREPACKAGED_METHODS = [
|
|
17
|
-
Method.HF3C,
|
|
18
|
-
Method.B973C,
|
|
19
|
-
Method.AIMNET2_WB97MD3,
|
|
20
|
-
Method.AIMNET2_B973C,
|
|
21
|
-
Method.GFN2_XTB,
|
|
22
|
-
Method.GFN1_XTB
|
|
23
|
-
]
|
|
16
|
+
PREPACKAGED_METHODS = [Method.HF3C, Method.B973C, Method.AIMNET2_WB97MD3, Method.AIMNET2_B973C, Method.GFN2_XTB, Method.GFN1_XTB]
|
|
24
17
|
|
|
25
18
|
METHODS_WITH_CORRECTION = [
|
|
26
19
|
Method.B97D3,
|
|
@@ -30,6 +23,7 @@ METHODS_WITH_CORRECTION = [
|
|
|
30
23
|
Method.WB97MV,
|
|
31
24
|
]
|
|
32
25
|
|
|
26
|
+
|
|
33
27
|
class Settings(Base):
|
|
34
28
|
method: Method = Method.HARTREE_FOCK
|
|
35
29
|
basis_set: Optional[BasisSet] = None
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from typing import Any, Optional
|
|
2
|
+
|
|
3
|
+
from ..base import Base
|
|
4
|
+
from ..method import Method
|
|
5
|
+
from ..mode import Mode
|
|
6
|
+
from ..solvent import Solvent
|
|
7
|
+
from .workflow import Workflow
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ConformerSettings(Base):
|
|
11
|
+
num_confs_considered: int = 100
|
|
12
|
+
num_confs_taken: int = 50
|
|
13
|
+
rmsd_cutoff: float = 0.1
|
|
14
|
+
|
|
15
|
+
final_method: Method = Method.AIMNET2_WB97MD3
|
|
16
|
+
solvent: Optional[Solvent] = Solvent.WATER
|
|
17
|
+
max_energy: float = 5
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class RdkitConformerSettings(ConformerSettings):
|
|
21
|
+
csearch_program: str = "rdkit"
|
|
22
|
+
|
|
23
|
+
num_initial_confs: int = 100
|
|
24
|
+
max_mmff_energy: float = 10
|
|
25
|
+
max_mmff_iterations: int = 500
|
|
26
|
+
num_confs_considered: float = 10
|
|
27
|
+
num_confs_taken: float = 3
|
|
28
|
+
rmsd_cutoff: float = 0.1
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class CrestConformerSettings(ConformerSettings):
|
|
32
|
+
csearch_program: str = "crest"
|
|
33
|
+
|
|
34
|
+
flags: str = "--quick --ewin 10"
|
|
35
|
+
gfn: int | str = "ff"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class Conformer(Base):
|
|
39
|
+
energy: float
|
|
40
|
+
weight: Optional[float] = None
|
|
41
|
+
|
|
42
|
+
# uuid, optionally
|
|
43
|
+
uuid: Optional[str] = None
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class ConformerWorkflow(Workflow):
|
|
47
|
+
settings: ConformerSettings = ConformerSettings()
|
|
48
|
+
conformers: list[Conformer] = []
|
|
49
|
+
|
|
50
|
+
def model_post_init(self, __context: Any) -> None:
|
|
51
|
+
self.settings = csearch_settings_by_mode(self.mode)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def csearch_settings_by_mode(mode: Mode) -> ConformerSettings:
|
|
55
|
+
if mode == Mode.METICULOUS:
|
|
56
|
+
return CrestConformerSettings(
|
|
57
|
+
gfn=2,
|
|
58
|
+
flags="--ewin 15",
|
|
59
|
+
max_energy=10,
|
|
60
|
+
num_confs_considered=500,
|
|
61
|
+
num_confs_taken=150,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
elif mode == Mode.CAREFUL:
|
|
65
|
+
return CrestConformerSettings(
|
|
66
|
+
gfn="ff",
|
|
67
|
+
flags="--quick --ewin 10",
|
|
68
|
+
num_confs_considered=150,
|
|
69
|
+
num_confs_taken=50,
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
elif mode == Mode.RAPID:
|
|
73
|
+
return RdkitConformerSettings(
|
|
74
|
+
num_initial_confs=300,
|
|
75
|
+
max_mmff_energy=15,
|
|
76
|
+
num_confs_considered=100,
|
|
77
|
+
num_confs_taken=50,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
elif mode == Mode.RECKLESS:
|
|
81
|
+
return RdkitConformerSettings(
|
|
82
|
+
num_initial_confs=200,
|
|
83
|
+
max_mmff_energy=10,
|
|
84
|
+
num_confs_considered=50,
|
|
85
|
+
num_confs_taken=20,
|
|
86
|
+
rmsd_cutoff=0.25,
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
else:
|
|
90
|
+
raise ValueError(f"invalid mode ``{mode.value}`` for conformer settings")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from .workflow import Workflow
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class FukuiIndexWorkflow(Workflow):
|
|
7
|
+
# uuid of optimization
|
|
8
|
+
optimization: Optional[str] = None
|
|
9
|
+
|
|
10
|
+
global_electrophilicity_index: Optional[float] = None
|
|
11
|
+
fukui_positive: Optional[list[float]] = None
|
|
12
|
+
fukui_negative: Optional[list[float]] = None
|
|
13
|
+
fukui_zero: Optional[list[float]] = None
|
stjames/workflows/pka.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ..base import Base
|
|
4
|
+
from .workflow import DBCalculation, Workflow
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class pKaMicrostate(Base):
|
|
8
|
+
atom_index: int
|
|
9
|
+
structures: list[DBCalculation] = []
|
|
10
|
+
delta_G: float
|
|
11
|
+
pKa: float
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class pKaWorkflow(Workflow):
|
|
15
|
+
pka_range: tuple[float, float] = (2, 12)
|
|
16
|
+
deprotonate_elements: list[int] = [7, 8, 16]
|
|
17
|
+
deprotonate_atoms: list[int] = []
|
|
18
|
+
protonate_elements: list[int] = [7]
|
|
19
|
+
protonate_atoms: list[int] = []
|
|
20
|
+
|
|
21
|
+
reasonableness_buffer: float = 5
|
|
22
|
+
|
|
23
|
+
structures: list[DBCalculation] = []
|
|
24
|
+
conjugate_acids: list[pKaMicrostate] = []
|
|
25
|
+
conjugate_bases: list[pKaMicrostate] = []
|
|
26
|
+
strongest_acid: Optional[float] = None
|
|
27
|
+
strongest_base: Optional[float] = None
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ..solvent import Solvent
|
|
4
|
+
from .workflow import Workflow
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class RedoxPotentialWorkflow(Workflow):
|
|
8
|
+
solvent: Solvent = Solvent.ACETONITRILE
|
|
9
|
+
reduction: bool = True
|
|
10
|
+
oxidation: bool = True
|
|
11
|
+
|
|
12
|
+
# uuids
|
|
13
|
+
neutral_molecule: Optional[str] = None
|
|
14
|
+
anion_molecule: Optional[str] = None
|
|
15
|
+
cation_molecule: Optional[str] = None
|
|
16
|
+
|
|
17
|
+
reduction_potential: Optional[float] = None
|
|
18
|
+
oxidation_potential: Optional[float] = None
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
|
|
5
|
+
from ..base import Base
|
|
6
|
+
from ..molecule import Molecule
|
|
7
|
+
from ..settings import Settings
|
|
8
|
+
from .workflow import Workflow
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ScanPoint(Base):
|
|
12
|
+
index: int
|
|
13
|
+
molecule: Molecule
|
|
14
|
+
energy: Optional[float] = None
|
|
15
|
+
uuid: Optional[str] = None
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ScanSettings(Base):
|
|
19
|
+
type: str # "bond", "angle", "dihedral" - make Enum later
|
|
20
|
+
atoms: list[int]
|
|
21
|
+
start: float
|
|
22
|
+
stop: float
|
|
23
|
+
num: int
|
|
24
|
+
|
|
25
|
+
def vals(self) -> np.ndarray:
|
|
26
|
+
return np.linspace(self.start, self.stop, self.num)
|
|
27
|
+
|
|
28
|
+
class Config:
|
|
29
|
+
from_attributes = True
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class ScanWorkflow(Workflow):
|
|
33
|
+
scan_settings: ScanSettings
|
|
34
|
+
calc_settings: Settings
|
|
35
|
+
engine: str
|
|
36
|
+
|
|
37
|
+
# uuids of scan points
|
|
38
|
+
scan_points: list[str] = []
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from ..base import Base
|
|
4
|
+
from .conformer import ConformerSettings
|
|
5
|
+
from .workflow import DBCalculation, Workflow
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Tautomer(Base):
|
|
9
|
+
energy: float
|
|
10
|
+
weight: Optional[float] = None
|
|
11
|
+
predicted_relative_energy: Optional[float] = None
|
|
12
|
+
|
|
13
|
+
# uuids, optionally
|
|
14
|
+
structures: list[DBCalculation] = []
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class TautomerWorkflow(Workflow):
|
|
18
|
+
settings: ConformerSettings
|
|
19
|
+
tautomers: list[Tautomer] = []
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from ..base import Base
|
|
2
|
+
from ..mode import Mode
|
|
3
|
+
from ..molecule import Molecule
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Workflow(Base):
|
|
7
|
+
"""All workflows should have these properties."""
|
|
8
|
+
|
|
9
|
+
initial_molecule: Molecule
|
|
10
|
+
mode: Mode
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DBCalculation(Base):
|
|
14
|
+
"""Encodes a calculation that's in the database. This isn't terribly useful by itself."""
|
|
15
|
+
|
|
16
|
+
uuid: str
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
stjames/__init__.py,sha256=_gX08PEdPHoE6oyc0OF2gKPBfk9op0am75y1TDUo-MU,451
|
|
2
|
+
stjames/_deprecated_solvent_settings.py,sha256=ALUZeQoxDS11EvZexT1J2SDAlLTiXe-x4jV8tenDqMc,445
|
|
3
|
+
stjames/base.py,sha256=cZNJq0TSRJk7aKVIl7fzRG6IYQeJ0ihWPi9eJxTiQfI,1070
|
|
4
|
+
stjames/basis_set.py,sha256=4Su3K3Y7G-4S8WHWOQE94d6hxoN6L_MkQUz3qoFqcB0,1014
|
|
5
|
+
stjames/calculation.py,sha256=6xnoKLn6tr1QaactTWsdu8Ciqdu8oa-hmB2y9RIrJTI,786
|
|
6
|
+
stjames/correction.py,sha256=_pNG3qSylfx0iyUxqwx9HPU0m032YwP6wSPCjbJrD94,358
|
|
7
|
+
stjames/diis_settings.py,sha256=QHc7L-hktkbOWBYr29byTdqL8lWJzKJiY9XW8ha4Qzo,552
|
|
8
|
+
stjames/grid_settings.py,sha256=WrSNGc-8_f87YBZYt9Hh7RbhM4MweADoVzwBMcSqcsE,640
|
|
9
|
+
stjames/int_settings.py,sha256=5HXp8opt5ZyY1UpmfaK7NVloWVLM5jkG0elEEqpVLUo,896
|
|
10
|
+
stjames/method.py,sha256=e7A3XH808JglgfCzISKyRKAxGDj7BQdcQQtgtTlgfNk,843
|
|
11
|
+
stjames/mode.py,sha256=xw46Cc7f3eTS8i35qECi-8DocAlANhayK3w4akD4HBU,496
|
|
12
|
+
stjames/molecule.py,sha256=y-NidMubuA9IsSruUKavyBndbf5hYodjihna9uBjkOc,2915
|
|
13
|
+
stjames/opt_settings.py,sha256=RwXikvwW6fTODK3FK8Xvyqy4DY-qMVtZHndWirBxujk,735
|
|
14
|
+
stjames/scf_settings.py,sha256=blJ5Mo2znF_H05gBCPZXTrDwCZuVzUJ_OIcmYGc0Eg0,2389
|
|
15
|
+
stjames/settings.py,sha256=xw5m9Zq4L-oUoV53MMmn9t-KmzlZoFVJSRmac8f2Sfw,8420
|
|
16
|
+
stjames/solvent.py,sha256=3ssY-vQCCa071srfJbwCYEKDpWos8Mgvmg_dTpAnbJw,1104
|
|
17
|
+
stjames/status.py,sha256=wTKNcNxStoEHrxxgr_zTyN90NITa3rxMQZzOgrCifEw,332
|
|
18
|
+
stjames/task.py,sha256=TTl-iTdvDNCZTdPsyS6bYmxzY0ez9PgYlL62fztayXQ,307
|
|
19
|
+
stjames/thermochem_settings.py,sha256=ZTLz31v8Ltutde5Nfm0vH5YahWjcfFWfr_R856KffxE,517
|
|
20
|
+
stjames/workflows/__init__.py,sha256=TibQzeD3X3YGq9TaAzPlBMxU7zskFoa8PwPUam4TcZY,154
|
|
21
|
+
stjames/workflows/conformer.py,sha256=mFqvzsLGiKWNrL0uSqxPgRPJZKKHPjIkK0MbdTqgnro,2297
|
|
22
|
+
stjames/workflows/fukui.py,sha256=FAabgLi_ig6Zp_jiTkuveP0wAObwv68liuumr85rb0g,366
|
|
23
|
+
stjames/workflows/pka.py,sha256=oMNH_s0cdCPq8wFX5o8_5KBWXdCakW9IS1RqmI1Ezmo,720
|
|
24
|
+
stjames/workflows/redox_potential.py,sha256=CCbN9VV30TkcyNQYlI319E8dyHdkzj3dZfBxXpJwJdA,466
|
|
25
|
+
stjames/workflows/scan.py,sha256=qy4Y4nc_1kPXR-4_uGtmnzrQ5i9fVEnoeeiMvwpufJs,768
|
|
26
|
+
stjames/workflows/tautomer.py,sha256=dJaBueUKKxnsj7A-N8ifBL97-Ecd56fPBe-uM9E5pHY,440
|
|
27
|
+
stjames/workflows/workflow.py,sha256=Va1UdKScmJHZ_yfAcMY2KNO1g4eHI3ZBzEPvnLOFR8A,343
|
|
28
|
+
stjames-0.0.31.dist-info/LICENSE,sha256=i7ehYBS-6gGmbTcgU4mgk28pyOx2kScJ0kcx8n7bWLM,1084
|
|
29
|
+
stjames-0.0.31.dist-info/METADATA,sha256=19ec6Qmg3Zb9fgUp1fRc1lfSa-PK18QhXVllZnp0fKQ,1605
|
|
30
|
+
stjames-0.0.31.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
31
|
+
stjames-0.0.31.dist-info/top_level.txt,sha256=FYCwxl6quhYOAgG-mnPQcCK8vsVM7B8rIUrO-WrQ_PI,8
|
|
32
|
+
stjames-0.0.31.dist-info/RECORD,,
|
stjames-0.0.29.dist-info/RECORD
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
stjames/__init__.py,sha256=AwqS7pMA9gAOkHUTjMbvQwztcSIHhGfXhC5dOEG-XG0,496
|
|
2
|
-
stjames/_deprecated_solvent_settings.py,sha256=ALUZeQoxDS11EvZexT1J2SDAlLTiXe-x4jV8tenDqMc,445
|
|
3
|
-
stjames/base.py,sha256=cZNJq0TSRJk7aKVIl7fzRG6IYQeJ0ihWPi9eJxTiQfI,1070
|
|
4
|
-
stjames/basis_set.py,sha256=4Su3K3Y7G-4S8WHWOQE94d6hxoN6L_MkQUz3qoFqcB0,1014
|
|
5
|
-
stjames/calculation.py,sha256=6xnoKLn6tr1QaactTWsdu8Ciqdu8oa-hmB2y9RIrJTI,786
|
|
6
|
-
stjames/corrections.py,sha256=_pNG3qSylfx0iyUxqwx9HPU0m032YwP6wSPCjbJrD94,358
|
|
7
|
-
stjames/diis_settings.py,sha256=QHc7L-hktkbOWBYr29byTdqL8lWJzKJiY9XW8ha4Qzo,552
|
|
8
|
-
stjames/grid_settings.py,sha256=WrSNGc-8_f87YBZYt9Hh7RbhM4MweADoVzwBMcSqcsE,640
|
|
9
|
-
stjames/int_settings.py,sha256=5HXp8opt5ZyY1UpmfaK7NVloWVLM5jkG0elEEqpVLUo,896
|
|
10
|
-
stjames/methods.py,sha256=e7A3XH808JglgfCzISKyRKAxGDj7BQdcQQtgtTlgfNk,843
|
|
11
|
-
stjames/modes.py,sha256=xw46Cc7f3eTS8i35qECi-8DocAlANhayK3w4akD4HBU,496
|
|
12
|
-
stjames/molecule.py,sha256=y-NidMubuA9IsSruUKavyBndbf5hYodjihna9uBjkOc,2915
|
|
13
|
-
stjames/opt_settings.py,sha256=RwXikvwW6fTODK3FK8Xvyqy4DY-qMVtZHndWirBxujk,735
|
|
14
|
-
stjames/scf_settings.py,sha256=blJ5Mo2znF_H05gBCPZXTrDwCZuVzUJ_OIcmYGc0Eg0,2389
|
|
15
|
-
stjames/settings.py,sha256=wGX66Ca3ShpBndGD6dGpcbb6PiJuLy5RkNX2kNXy-yo,8458
|
|
16
|
-
stjames/solvent_settings.py,sha256=3ssY-vQCCa071srfJbwCYEKDpWos8Mgvmg_dTpAnbJw,1104
|
|
17
|
-
stjames/status.py,sha256=wTKNcNxStoEHrxxgr_zTyN90NITa3rxMQZzOgrCifEw,332
|
|
18
|
-
stjames/tasks.py,sha256=TTl-iTdvDNCZTdPsyS6bYmxzY0ez9PgYlL62fztayXQ,307
|
|
19
|
-
stjames/thermochem_settings.py,sha256=ZTLz31v8Ltutde5Nfm0vH5YahWjcfFWfr_R856KffxE,517
|
|
20
|
-
stjames-0.0.29.dist-info/LICENSE,sha256=i7ehYBS-6gGmbTcgU4mgk28pyOx2kScJ0kcx8n7bWLM,1084
|
|
21
|
-
stjames-0.0.29.dist-info/METADATA,sha256=7HJMT_ko4b1_9E6-dqkXBz89mV9cd6d_yKoGPlGXVAI,1605
|
|
22
|
-
stjames-0.0.29.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
23
|
-
stjames-0.0.29.dist-info/top_level.txt,sha256=FYCwxl6quhYOAgG-mnPQcCK8vsVM7B8rIUrO-WrQ_PI,8
|
|
24
|
-
stjames-0.0.29.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
/stjames/{modes.py → mode.py}
RENAMED
|
File without changes
|
|
File without changes
|
/stjames/{tasks.py → task.py}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|