pyphyschemtools 0.1.0__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.
- pyphyschemtools/Chem3D.py +831 -0
- pyphyschemtools/ML.py +42 -0
- pyphyschemtools/PeriodicTable.py +289 -0
- pyphyschemtools/__init__.py +43 -0
- pyphyschemtools/aithermo.py +350 -0
- pyphyschemtools/cheminformatics.py +230 -0
- pyphyschemtools/core.py +119 -0
- pyphyschemtools/icons-logos-banner/Logo_pyPhysChem_border.svg +1109 -0
- pyphyschemtools/icons-logos-banner/__init__.py +0 -0
- pyphyschemtools/icons-logos-banner/logo.png +0 -0
- pyphyschemtools/icons-logos-banner/tools4pyPC_banner.png +0 -0
- pyphyschemtools/icons-logos-banner/tools4pyPC_banner.svg +193 -0
- pyphyschemtools/kinetics.py +193 -0
- pyphyschemtools/resources/css/BrainHalfHalf-120x139.base64 +1 -0
- pyphyschemtools/resources/css/BrainHalfHalf-120x139.png +0 -0
- pyphyschemtools/resources/css/BrainHalfHalf.base64 +8231 -0
- pyphyschemtools/resources/css/BrainHalfHalf.png +0 -0
- pyphyschemtools/resources/css/BrainHalfHalf.svg +289 -0
- pyphyschemtools/resources/css/visualID.css +325 -0
- pyphyschemtools/resources/img/Tranformative_3.webp +0 -0
- pyphyschemtools/resources/img/Tranformative_3_banner.png +0 -0
- pyphyschemtools/resources/img/pyPhysChem_1.png +0 -0
- pyphyschemtools/resources/svg/BrainHalfHalf.png +0 -0
- pyphyschemtools/resources/svg/BrainHalfHalf.svg +289 -0
- pyphyschemtools/resources/svg/GitHub-Logo-C.png +0 -0
- pyphyschemtools/resources/svg/GitHub-Logo.png +0 -0
- pyphyschemtools/resources/svg/Logo-Universite-Toulouse-n-2023.png +0 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_1-translucentBgd-woName.png +0 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_1-translucentBgd.png +0 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_1.png +0 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_1.svg +622 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_5.png +0 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_5.svg +48 -0
- pyphyschemtools/resources/svg/Logo_pyPhysChem_border.svg +1109 -0
- pyphyschemtools/resources/svg/Python-logo-notext.svg +265 -0
- pyphyschemtools/resources/svg/Python_logo_and_wordmark.svg.png +0 -0
- pyphyschemtools/resources/svg/UT3_logoQ.jpg +0 -0
- pyphyschemtools/resources/svg/UT3_logoQ.png +0 -0
- pyphyschemtools/resources/svg/Universite-Toulouse-n-2023.svg +141 -0
- pyphyschemtools/resources/svg/X.png +0 -0
- pyphyschemtools/resources/svg/logoAnaconda.png +0 -0
- pyphyschemtools/resources/svg/logoAnaconda.webp +0 -0
- pyphyschemtools/resources/svg/logoCNRS.png +0 -0
- pyphyschemtools/resources/svg/logoDebut.svg +316 -0
- pyphyschemtools/resources/svg/logoEnd.svg +172 -0
- pyphyschemtools/resources/svg/logoFin.svg +172 -0
- pyphyschemtools/resources/svg/logoPPCL.svg +359 -0
- pyphyschemtools/resources/svg/logoPytChem.png +0 -0
- pyphyschemtools/resources/svg/logo_lpcno_300_dpi_notexttransparent.png +0 -0
- pyphyschemtools/resources/svg/logo_pyPhysChem.png +0 -0
- pyphyschemtools/resources/svg/logo_pyPhysChem_0.png +0 -0
- pyphyschemtools/resources/svg/logo_pyPhysChem_0.svg +390 -0
- pyphyschemtools/resources/svg/logopyPhyschem.png +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_2.webp +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_3.webp +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_4.webp +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_5.png +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_5.webp +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_6.webp +0 -0
- pyphyschemtools/resources/svg/logopyPhyschem_7.webp +0 -0
- pyphyschemtools/resources/svg/logos-Anaconda-pyPhysChem.png +0 -0
- pyphyschemtools/resources/svg/logos-Anaconda-pyPhysChem.svg +58 -0
- pyphyschemtools/resources/svg/pyPCBanner.svg +309 -0
- pyphyschemtools/resources/svg/pyPhysChem-GitHubSocialMediaTemplate.png +0 -0
- pyphyschemtools/resources/svg/pyPhysChem-GitHubSocialMediaTemplate.svg +295 -0
- pyphyschemtools/resources/svg/pyPhysChemBanner.png +0 -0
- pyphyschemtools/resources/svg/pyPhysChemBanner.svg +639 -0
- pyphyschemtools/resources/svg/qrcode-pyPhysChem.png +0 -0
- pyphyschemtools/resources/svg/repository-open-graph-template.png +0 -0
- pyphyschemtools/spectra.py +451 -0
- pyphyschemtools/survey.py +1048 -0
- pyphyschemtools/sympyUtilities.py +51 -0
- pyphyschemtools/tools4AS.py +960 -0
- pyphyschemtools/visualID.py +101 -0
- pyphyschemtools/visualID_Eng.py +175 -0
- pyphyschemtools-0.1.0.dist-info/METADATA +38 -0
- pyphyschemtools-0.1.0.dist-info/RECORD +80 -0
- pyphyschemtools-0.1.0.dist-info/WHEEL +5 -0
- pyphyschemtools-0.1.0.dist-info/licenses/LICENSE +674 -0
- pyphyschemtools-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import os,sys,platform
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
import datetime, time
|
|
4
|
+
#from IPython.core.display import display,Image,Markdown,HTML
|
|
5
|
+
from IPython.display import display,Image,Markdown,HTML
|
|
6
|
+
from urllib.request import urlopen
|
|
7
|
+
|
|
8
|
+
__author__ = "Romuald POTEAU"
|
|
9
|
+
__maintainer__ = "Romuald POTEAU"
|
|
10
|
+
__email__ = "romuald.poteau@univ-tlse3.fr"
|
|
11
|
+
__status__ = "Development"
|
|
12
|
+
|
|
13
|
+
_start_time = None
|
|
14
|
+
_end_time = None
|
|
15
|
+
_chrono_start = None
|
|
16
|
+
_chrono_stop = None
|
|
17
|
+
|
|
18
|
+
class color:
|
|
19
|
+
PURPLE = '\033[95m'
|
|
20
|
+
CYAN = '\033[96m'
|
|
21
|
+
DARKCYAN = '\033[36m'
|
|
22
|
+
BLUE = '\033[94m'
|
|
23
|
+
GREEN = '\033[92m'
|
|
24
|
+
YELLOW = '\033[93m'
|
|
25
|
+
RED = '\033[91m'
|
|
26
|
+
BOLD = '\033[1m'
|
|
27
|
+
UNDERLINE = '\033[4m'
|
|
28
|
+
OFF = '\033[0m'
|
|
29
|
+
|
|
30
|
+
def css_styling(pwy):
|
|
31
|
+
styles = open(pwy+"/css/visualID.css", "r").read()
|
|
32
|
+
display(HTML(styles))
|
|
33
|
+
#def css_styling():
|
|
34
|
+
# html = urlopen("file:./css/visualID.css")
|
|
35
|
+
# styles = HTML(html.read().decode('utf-8'))
|
|
36
|
+
# display(HTML(styles))
|
|
37
|
+
|
|
38
|
+
def display_md(text):
|
|
39
|
+
display(Markdown(text))
|
|
40
|
+
|
|
41
|
+
def hdelay(sec):
|
|
42
|
+
return str(datetime.timedelta(seconds=int(sec)))
|
|
43
|
+
|
|
44
|
+
# Return human delay like 01:14:28 543ms
|
|
45
|
+
# delay can be timedelta or seconds
|
|
46
|
+
def hdelay_ms(delay):
|
|
47
|
+
if type(delay) is not datetime.timedelta:
|
|
48
|
+
delay=datetime.timedelta(seconds=delay)
|
|
49
|
+
sec = delay.total_seconds()
|
|
50
|
+
hh = sec // 3600
|
|
51
|
+
mm = (sec // 60) - (hh * 60)
|
|
52
|
+
ss = sec - hh*3600 - mm*60
|
|
53
|
+
ms = (sec - int(sec))*1000
|
|
54
|
+
return f'{hh:02.0f}:{mm:02.0f}:{ss:02.0f} {ms:03.0f}ms'
|
|
55
|
+
|
|
56
|
+
def chrono_start():
|
|
57
|
+
global _chrono_start, _chrono_stop
|
|
58
|
+
_chrono_start=time.time()
|
|
59
|
+
|
|
60
|
+
# return delay in seconds or in humain format
|
|
61
|
+
def chrono_stop(hdelay=False):
|
|
62
|
+
global _chrono_start, _chrono_stop
|
|
63
|
+
_chrono_stop = time.time()
|
|
64
|
+
sec = _chrono_stop - _chrono_start
|
|
65
|
+
if hdelay : return hdelay_ms(sec)
|
|
66
|
+
return sec
|
|
67
|
+
|
|
68
|
+
def chrono_show():
|
|
69
|
+
print('\nDuration : ', hdelay_ms(time.time() - _chrono_start))
|
|
70
|
+
|
|
71
|
+
def init(pwy):
|
|
72
|
+
global _start_time
|
|
73
|
+
# Styling notebook
|
|
74
|
+
#
|
|
75
|
+
css_styling(pwy)
|
|
76
|
+
# Today, now and hostname
|
|
77
|
+
#
|
|
78
|
+
_start_time = datetime.datetime.now()
|
|
79
|
+
start_time = _start_time.strftime("%A %d %B %Y, %H:%M:%S")
|
|
80
|
+
_h = platform.uname()
|
|
81
|
+
h = _h[1]+" ("+_h[0]+")"
|
|
82
|
+
md = f'**Début à:** {start_time} \n'
|
|
83
|
+
md+= f'**Hostname:** {h}'
|
|
84
|
+
display_md(md)
|
|
85
|
+
#print('Run time :', _start_time.strftime("%A %d %B %Y, %H:%M:%S"))
|
|
86
|
+
#print('Hostname :', f'{h[1]} ({h[0]})')
|
|
87
|
+
path2svg = pwy + 'svg/'
|
|
88
|
+
md = '<p style="text-align: center"><img width="800px" src="' + path2svg + 'logoDebut.svg" style="margin-left:auto; margin-right:auto"/></p>'
|
|
89
|
+
display_md(md)
|
|
90
|
+
|
|
91
|
+
def end(pwy):
|
|
92
|
+
global _end_time
|
|
93
|
+
_end_time = datetime.datetime.now()
|
|
94
|
+
end_time = time.strftime("%A %d %B %Y, %H:%M:%S")
|
|
95
|
+
duration = hdelay_ms(_end_time - _start_time)
|
|
96
|
+
md = f'**Fin à:** {end_time} \n'
|
|
97
|
+
md+= f'**Durée:** {duration}'
|
|
98
|
+
display_md(md)
|
|
99
|
+
path2svg = pwy + 'svg/'
|
|
100
|
+
md = '<p style="text-align: center"><img width="800px" src="' + path2svg + 'logoFin.svg" style="margin-left:auto; margin-right:auto"/></p>'
|
|
101
|
+
display_md(md)
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import os, sys, platform
|
|
2
|
+
import datetime, time
|
|
3
|
+
#from IPython.core.display import display,Image,Markdown,HTML
|
|
4
|
+
from IPython.display import display,Image,Markdown,HTML
|
|
5
|
+
from urllib.request import urlopen
|
|
6
|
+
|
|
7
|
+
__author__ = "Romuald POTEAU"
|
|
8
|
+
__maintainer__ = "Romuald POTEAU"
|
|
9
|
+
__email__ = "romuald.poteau@univ-tlse3.fr"
|
|
10
|
+
__status__ = "Development"
|
|
11
|
+
|
|
12
|
+
# Get the absolute path to this file's directory within the package
|
|
13
|
+
_PKG_PATH = os.path.dirname(__file__)
|
|
14
|
+
|
|
15
|
+
_start_time = None
|
|
16
|
+
_end_time = None
|
|
17
|
+
_chrono_start = None
|
|
18
|
+
_chrono_stop = None
|
|
19
|
+
|
|
20
|
+
class color:
|
|
21
|
+
PURPLE = '\033[95m'
|
|
22
|
+
CYAN = '\033[96m'
|
|
23
|
+
DARKCYAN = '\033[36m'
|
|
24
|
+
BLUE = '\033[94m'
|
|
25
|
+
GREEN = '\033[92m'
|
|
26
|
+
YELLOW = '\033[93m'
|
|
27
|
+
RED = '\033[91m'
|
|
28
|
+
BOLD = '\033[1m'
|
|
29
|
+
UNDERLINE = '\033[4m'
|
|
30
|
+
OFF = '\033[0m'
|
|
31
|
+
|
|
32
|
+
class fg:
|
|
33
|
+
PURPLE = '\033[95m'
|
|
34
|
+
CYAN = '\033[96m'
|
|
35
|
+
DARKCYAN = '\033[36m'
|
|
36
|
+
BLUE = '\033[94m'
|
|
37
|
+
GREEN = '\033[92m'
|
|
38
|
+
YELLOW = '\033[93m'
|
|
39
|
+
RED = '\033[91m'
|
|
40
|
+
LIGHTGRAY = "\033[37m"
|
|
41
|
+
DARKGRAY = "\033[90m"
|
|
42
|
+
BLACK = '\033[30m'
|
|
43
|
+
WHITE = "\033[38;5;231m"
|
|
44
|
+
OFF = '\033[0m'
|
|
45
|
+
class hl:
|
|
46
|
+
BLINK = "\033[5m"
|
|
47
|
+
blink = "\033[25m" #reset blink
|
|
48
|
+
BOLD = '\033[1m'
|
|
49
|
+
bold = "\033[21m" #reset bold
|
|
50
|
+
UNDERL = '\033[4m'
|
|
51
|
+
underl = "\033[24m" #reset underline
|
|
52
|
+
ITALIC = "\033[3m"
|
|
53
|
+
italic = "\033[23m"
|
|
54
|
+
OFF = '\033[0m'
|
|
55
|
+
class bg:
|
|
56
|
+
DARKRED = "\033[38;5;231;48;5;52m"
|
|
57
|
+
DARKREDB = "\033[38;5;231;48;5;52;1m"
|
|
58
|
+
LIGHTRED = "\033[48;5;217m"
|
|
59
|
+
LIGHTREDB = "\033[48;5;217;1m"
|
|
60
|
+
LIGHTYELLOW = "\033[48;5;228m"
|
|
61
|
+
LIGHTYELLOWB = "\033[48;5;228;1m"
|
|
62
|
+
LIGHTGREEN = "\033[48;5;156m"
|
|
63
|
+
LIGHTGREENB = "\033[48;5;156;1m"
|
|
64
|
+
LIGHTBLUE = "\033[48;5;117m"
|
|
65
|
+
LIGHTBLUEB = "\033[48;5;117;1m"
|
|
66
|
+
OFF = "\033[0m"
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def apply_css_style():
|
|
70
|
+
"""
|
|
71
|
+
Explicitly reads and applies the visualID CSS stylesheet
|
|
72
|
+
from the package resources.
|
|
73
|
+
"""
|
|
74
|
+
css_path = os.path.join(_PKG_PATH, "resources", "css", "visualID.css")
|
|
75
|
+
if os.path.exists(css_path):
|
|
76
|
+
with open(css_path, "r") as f:
|
|
77
|
+
styles = f.read()
|
|
78
|
+
# Some CSS files might not have the <style> tag if they are raw CSS
|
|
79
|
+
if not styles.strip().startswith("<style>"):
|
|
80
|
+
styles = f"<style>{styles}</style>"
|
|
81
|
+
display(HTML(styles))
|
|
82
|
+
else:
|
|
83
|
+
print(f"[Warning] CSS file not found at {css_path}")
|
|
84
|
+
|
|
85
|
+
def init(Research=False):
|
|
86
|
+
"""
|
|
87
|
+
Initializes the notebook environment: applies CSS,
|
|
88
|
+
displays the banner, and shows hostname/time.
|
|
89
|
+
"""
|
|
90
|
+
global _start_time
|
|
91
|
+
_start_time = datetime.datetime.now()
|
|
92
|
+
|
|
93
|
+
# 1. Call the explicit CSS function
|
|
94
|
+
apply_css_style()
|
|
95
|
+
|
|
96
|
+
# 2. Display the banner
|
|
97
|
+
banner = "pyPCBanner.svg" if Research else "pyPhysChemBanner.svg"
|
|
98
|
+
banner_path = os.path.join(_PKG_PATH, "resources", "svg", banner)
|
|
99
|
+
|
|
100
|
+
if os.path.exists(banner_path):
|
|
101
|
+
with open(banner_path, "r") as f:
|
|
102
|
+
svg_data = f.read()
|
|
103
|
+
display(HTML(f'<div style="text-align: center;">{svg_data}</div>'))
|
|
104
|
+
|
|
105
|
+
# 3. Environment Info
|
|
106
|
+
now = datetime.datetime.now().strftime("%A %d %B %Y, %H:%M:%S")
|
|
107
|
+
display(Markdown(f"**Environment initialized:** {now} on {platform.node()}"))
|
|
108
|
+
|
|
109
|
+
def display_md(text):
|
|
110
|
+
display(Markdown(text))
|
|
111
|
+
|
|
112
|
+
def hdelay(sec):
|
|
113
|
+
return str(datetime.timedelta(seconds=int(sec)))
|
|
114
|
+
|
|
115
|
+
# Return human delay like 01:14:28 543ms
|
|
116
|
+
# delay can be timedelta or seconds
|
|
117
|
+
def hdelay_ms(delay):
|
|
118
|
+
if type(delay) is not datetime.timedelta:
|
|
119
|
+
delay=datetime.timedelta(seconds=delay)
|
|
120
|
+
sec = delay.total_seconds()
|
|
121
|
+
hh = sec // 3600
|
|
122
|
+
mm = (sec // 60) - (hh * 60)
|
|
123
|
+
ss = sec - hh*3600 - mm*60
|
|
124
|
+
ms = (sec - int(sec))*1000
|
|
125
|
+
return f'{hh:02.0f}:{mm:02.0f}:{ss:02.0f} {ms:03.0f}ms'
|
|
126
|
+
|
|
127
|
+
def chrono_start():
|
|
128
|
+
global _chrono_start, _chrono_stop
|
|
129
|
+
_chrono_start=time.time()
|
|
130
|
+
|
|
131
|
+
# return delay in seconds or in humain format
|
|
132
|
+
def chrono_stop(hdelay=False):
|
|
133
|
+
global _chrono_start, _chrono_stop
|
|
134
|
+
_chrono_stop = time.time()
|
|
135
|
+
sec = _chrono_stop - _chrono_start
|
|
136
|
+
if hdelay : return hdelay_ms(sec)
|
|
137
|
+
return sec
|
|
138
|
+
|
|
139
|
+
def chrono_show():
|
|
140
|
+
print('\nDuration : ', hdelay_ms(time.time() - _chrono_start))
|
|
141
|
+
|
|
142
|
+
def end():
|
|
143
|
+
"""
|
|
144
|
+
Terminates the notebook session: displays duration,
|
|
145
|
+
end time, and the termination logo from package resources.
|
|
146
|
+
"""
|
|
147
|
+
global _start_time, _end_time
|
|
148
|
+
|
|
149
|
+
# 1. Calcul du temps
|
|
150
|
+
_end_time = datetime.datetime.now()
|
|
151
|
+
end_str = _end_time.strftime("%A %d %B %Y, %H:%M:%S")
|
|
152
|
+
|
|
153
|
+
# Calcul de la durée si _start_time existe
|
|
154
|
+
if _start_time:
|
|
155
|
+
duration = hdelay_ms(_end_time - _start_time)
|
|
156
|
+
else:
|
|
157
|
+
duration = "Unknown (init() was not called)"
|
|
158
|
+
|
|
159
|
+
# 2. Affichage des infos de fin
|
|
160
|
+
md = f'**End at:** {end_str} \n'
|
|
161
|
+
md += f'**Duration:** {duration}'
|
|
162
|
+
|
|
163
|
+
# 3. Affichage du logo de fin (depuis le package)
|
|
164
|
+
# On suppose que le logo s'appelle logoEnd.svg et est dans resources/svg/
|
|
165
|
+
logo_path = os.path.join(_PKG_PATH, "resources", "svg", "logoEnd.svg")
|
|
166
|
+
|
|
167
|
+
if os.path.exists(logo_path):
|
|
168
|
+
with open(logo_path, "r") as f:
|
|
169
|
+
svg_data = f.read()
|
|
170
|
+
display(HTML(f'<div style="text-align: center; width: 800px; margin: auto;">{svg_data}</div>'))
|
|
171
|
+
else:
|
|
172
|
+
# Fallback si le logo est manquant
|
|
173
|
+
print(f"[Warning] End logo not found at {logo_path}")
|
|
174
|
+
display_md(md)
|
|
175
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyphyschemtools
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A comprehensive Python toolbox for physical chemistry and cheminformatics
|
|
5
|
+
Author-email: "Romuald POTEAU, LPCNO" <romuald.poteau@utoulouse.fr>
|
|
6
|
+
Project-URL: Homepage, https://github.com/rpoteau/pyphyschemtools
|
|
7
|
+
Project-URL: Repository, https://github.com/rpoteau/pyphyschemtools
|
|
8
|
+
Project-URL: Changelog, https://github.com/rpoteau/pyphyschemtools/blob/main/CHANGELOG.md
|
|
9
|
+
Project-URL: Documentation, https://github.com/rpoteau/pyphyschemtools/blob/main/README.md
|
|
10
|
+
Project-URL: Issues, https://github.com/rpoteau/pyphyschemtools/issues
|
|
11
|
+
Requires-Python: >=3.8
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: numpy
|
|
15
|
+
Requires-Dist: pandas
|
|
16
|
+
Requires-Dist: matplotlib
|
|
17
|
+
Requires-Dist: scipy
|
|
18
|
+
Requires-Dist: ipywidgets
|
|
19
|
+
Requires-Dist: jupyter
|
|
20
|
+
Requires-Dist: Pillow
|
|
21
|
+
Requires-Dist: openpyxl
|
|
22
|
+
Requires-Dist: rdkit
|
|
23
|
+
Requires-Dist: py3Dmol
|
|
24
|
+
Provides-Extra: docs
|
|
25
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
26
|
+
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
27
|
+
Requires-Dist: myst-parser; extra == "docs"
|
|
28
|
+
Requires-Dist: numpydoc; extra == "docs"
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
<div style="text-align:center">
|
|
32
|
+
<img src="https://raw.githubusercontent.com/rpoteau/pyphyschemtools/main/pyphyschemtools/icons-logos-banner/tools4pyPC_banner.png" alt="t4pyPCbanner" width="800"/>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
# pyPhysChemTools
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
pyphyschemtools/Chem3D.py,sha256=i6ieFGEiO1bwZ7GdtNnFCEbfVRXa4YSGkd7SLnjndUs,32709
|
|
2
|
+
pyphyschemtools/ML.py,sha256=ofNGptNqv31BGG_QKepYmpF9M_uPLkDRXhrJiDWsqWo,1608
|
|
3
|
+
pyphyschemtools/PeriodicTable.py,sha256=bk11SIN3xofpIp2SIZHLx7t-EyRBFUVRUUpfddaSvCc,13499
|
|
4
|
+
pyphyschemtools/__init__.py,sha256=CUZWtKfjmw964Dx6wfVxBu5j049Om-f6ScwhGyvjMsE,1465
|
|
5
|
+
pyphyschemtools/aithermo.py,sha256=8x204bHVZwR2bb6j3G6XrUD0XePxcZG6NCH6808x8K0,15017
|
|
6
|
+
pyphyschemtools/cheminformatics.py,sha256=Qps_JSYWOzZQcXwKElI1iWGjWAPDgwmtDKuJwONsKmI,8977
|
|
7
|
+
pyphyschemtools/core.py,sha256=m2WGuu3EmLTJvMoD_WDScGesbRfo9PIC6HIdAUQRGHg,4866
|
|
8
|
+
pyphyschemtools/kinetics.py,sha256=3YyzzQ7FKZ7wNALRDsLNLhpZpDp38LHWOUfMojsh8hE,7696
|
|
9
|
+
pyphyschemtools/spectra.py,sha256=XMkkzrWK6QtDm2mcvNSJfbE6fiGPU-8U-nvTcPYWWdI,21626
|
|
10
|
+
pyphyschemtools/survey.py,sha256=Rcw0xb0_nwsxETleB1C2xjKmZfrUw4PXDm48CMSptHU,45816
|
|
11
|
+
pyphyschemtools/sympyUtilities.py,sha256=eZHv0vDAxJ5hWb40U3ZmhfDU-cwEdN-_1ZgcV_B6dGo,1558
|
|
12
|
+
pyphyschemtools/tools4AS.py,sha256=733OboqFLDscmtVLDLdDNjAGQgUcBVm6H6Zm3uG_q3I,44778
|
|
13
|
+
pyphyschemtools/visualID.py,sha256=JlAd5nnZIliHOiKvkToArYhkbty-OntuFGf2CdPbgo8,3061
|
|
14
|
+
pyphyschemtools/visualID_Eng.py,sha256=o-EdCOduo_qruRrr5kkplixaT1t79f3I3M1Ya5TOc_Q,5244
|
|
15
|
+
pyphyschemtools/icons-logos-banner/Logo_pyPhysChem_border.svg,sha256=w6AhEF3Ym5Xe6AyUJ0WZ8rTzYXCFCSQLCAftrmPaG7w,55288
|
|
16
|
+
pyphyschemtools/icons-logos-banner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
pyphyschemtools/icons-logos-banner/logo.png,sha256=qnxdLQGvv1TNcz_n4EseQhzZgIX6O710tqm418_EIRY,388311
|
|
18
|
+
pyphyschemtools/icons-logos-banner/tools4pyPC_banner.png,sha256=z7o_kBK0sIBsXHEJrT2GyLHu-0T0T3S8YkWcpxR2joA,89058
|
|
19
|
+
pyphyschemtools/icons-logos-banner/tools4pyPC_banner.svg,sha256=JQhtJmTXkatvHwGtSc0gHBTZB_E0eh_nLB9kX7sxt7k,99752
|
|
20
|
+
pyphyschemtools/resources/css/BrainHalfHalf-120x139.base64,sha256=rn-r0NKiX92EEEOlME-nUw_fC8B6mrEThX7v9L1y4Eg,25092
|
|
21
|
+
pyphyschemtools/resources/css/BrainHalfHalf-120x139.png,sha256=tBhhTXidkqjvmavprPAl3BZlsqswu7DbP_rAz-tyS_Q,18818
|
|
22
|
+
pyphyschemtools/resources/css/BrainHalfHalf.base64,sha256=0VLlFvSdEaVfHJR-RDNu27V0PzBN0HSfsXxGU0mRFXw,633735
|
|
23
|
+
pyphyschemtools/resources/css/BrainHalfHalf.png,sha256=xOl5kFSwb4QngqTv0KRuXISDU7Vme_KU-6Rpz99dRsI,469128
|
|
24
|
+
pyphyschemtools/resources/css/BrainHalfHalf.svg,sha256=4MRiqNq2_9NS1Ns6z_JRqIUca324TojZvjtPdNAxVD8,16996
|
|
25
|
+
pyphyschemtools/resources/css/visualID.css,sha256=1p6ULjkkWjT5CqRjTSYX6qyZel5-Sw3pGU7je2pFgIE,31729
|
|
26
|
+
pyphyschemtools/resources/img/Tranformative_3.webp,sha256=GYF45M-0E46T0U7RukL6SFG1DADJ1-YZVqki0eU-SR4,770088
|
|
27
|
+
pyphyschemtools/resources/img/Tranformative_3_banner.png,sha256=aeHj5yKH3pnhwLgj4NPuD_QdZKYO0W8XQz6vZ3kWOlM,3926871
|
|
28
|
+
pyphyschemtools/resources/img/pyPhysChem_1.png,sha256=56hHAKCzXb2aVSN_gmzPMLB7gOVYD9Y2C9nFp0HbaGc,2379769
|
|
29
|
+
pyphyschemtools/resources/svg/BrainHalfHalf.png,sha256=0gMjUzaYU_dPx7akTyOGs7wQb0wKN2scrLV7Emf_lVk,467696
|
|
30
|
+
pyphyschemtools/resources/svg/BrainHalfHalf.svg,sha256=bciwdlLrnNn7woUXOMgOkqz0qGf_96ExSsRP-D4z3gQ,16988
|
|
31
|
+
pyphyschemtools/resources/svg/GitHub-Logo-C.png,sha256=_e0i3r58JlrNmTIxVU73IwK0OB_LODLb0txchkBW6Cc,37989
|
|
32
|
+
pyphyschemtools/resources/svg/GitHub-Logo.png,sha256=JSAGC6iIywDt20TfPDII4Ji5VP9JRsCMNIP29wsswjU,29980
|
|
33
|
+
pyphyschemtools/resources/svg/Logo-Universite-Toulouse-n-2023.png,sha256=OC1RKyYtLL3cGge7LYGxViz-h3OcHBb8mv9Ry3Pi-Ek,52483
|
|
34
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_1-translucentBgd-woName.png,sha256=B14i_O154PyQti8WTgpufX2hTG-AlzJTYihRw-3gtFY,346119
|
|
35
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_1-translucentBgd.png,sha256=Z_K463eB8rac9OTxfadHk2I5AtHKI8np0oRF26oxjFc,467702
|
|
36
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_1.png,sha256=znxBVjaQI2XxiuExsXOMKg5CLdaMB4EOvpBSTg0KJ2A,598625
|
|
37
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_1.svg,sha256=ZWWWUuTQivI-PlZcsDGw1n8TR5vYSREPAPrgypsF6-M,33300
|
|
38
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_5.png,sha256=yebG4Ff1j-_y48ib8kB53bCHCKvrVgY0Awpd3JCiU-4,184087
|
|
39
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_5.svg,sha256=4AwMvR3g4On3tpWw1FVDhIdiRVA3H2wJ9S1vUotAuOk,11128
|
|
40
|
+
pyphyschemtools/resources/svg/Logo_pyPhysChem_border.svg,sha256=w6AhEF3Ym5Xe6AyUJ0WZ8rTzYXCFCSQLCAftrmPaG7w,55288
|
|
41
|
+
pyphyschemtools/resources/svg/Python-logo-notext.svg,sha256=WqlZrKOVxFqXWBtNgze0JxLjsPZ8iepEbbD4scOcGgI,9605
|
|
42
|
+
pyphyschemtools/resources/svg/Python_logo_and_wordmark.svg.png,sha256=QNTL_YV0YtcoFGQRT-LBzCrrswBfLn28U1cchMdWYlU,32261
|
|
43
|
+
pyphyschemtools/resources/svg/UT3_logoQ.jpg,sha256=Q9tYeNN-SZbfAWVb-HqTh6igT9L8gfdku4Vt0LFlmmU,191518
|
|
44
|
+
pyphyschemtools/resources/svg/UT3_logoQ.png,sha256=dtdMcso1TUOBFrqxBGhhdF-WDl1xCTZPNZ9z3FvtDnk,242998
|
|
45
|
+
pyphyschemtools/resources/svg/Universite-Toulouse-n-2023.svg,sha256=VlQVIH-Of6s05fIrkuvCz11oQ3XDQAZT-9IP8G5Pwjc,8152
|
|
46
|
+
pyphyschemtools/resources/svg/X.png,sha256=voQC3AhJ4iLazVoEmr7cZ2bU_zc5ok6daUU-uvXS96M,2963937
|
|
47
|
+
pyphyschemtools/resources/svg/logoAnaconda.png,sha256=FFqe26atGslDgxUISNCo8bHFLKgA-OAyuCPM-1oJvgc,1221035
|
|
48
|
+
pyphyschemtools/resources/svg/logoAnaconda.webp,sha256=sldWCjn5_S2U9QSvIBCz63q5vThPS6CQ_vgjvHqE1BQ,14194
|
|
49
|
+
pyphyschemtools/resources/svg/logoCNRS.png,sha256=h2fFDYdp-OFk-5JY2O7FrJKNw8WOne3D2BgMjbmo1rQ,113697
|
|
50
|
+
pyphyschemtools/resources/svg/logoDebut.svg,sha256=8y_nb4xSvO5QDv-R3gk0FP8toGQsokie5zAvb3ytN10,381892
|
|
51
|
+
pyphyschemtools/resources/svg/logoEnd.svg,sha256=IsQV-Zc3HrjpQzQ5SnWO_5x_O42jO9OMJ_qGoBufSVc,5643
|
|
52
|
+
pyphyschemtools/resources/svg/logoFin.svg,sha256=AYyt-anllgL9D8Lpb1AaD5OKns451pO9oc8aCp4px70,5640
|
|
53
|
+
pyphyschemtools/resources/svg/logoPPCL.svg,sha256=oPTqnf-mg5Xx6aPoqFjlZChIyXLgvs-PoGU6zjYsdy0,17524
|
|
54
|
+
pyphyschemtools/resources/svg/logoPytChem.png,sha256=FUMME17AsciR7QETknScpJEPzUkWh12jy6WXlEfROec,118749
|
|
55
|
+
pyphyschemtools/resources/svg/logo_lpcno_300_dpi_notexttransparent.png,sha256=mjvQoboGYcisfnb4uQkcREFIEOhqZTujhuKbJpzxWvo,66841
|
|
56
|
+
pyphyschemtools/resources/svg/logo_pyPhysChem.png,sha256=Hgn_fbjScovqtQrAw5UHlDameNpKgY6qxtzrk7WChkg,503867
|
|
57
|
+
pyphyschemtools/resources/svg/logo_pyPhysChem_0.png,sha256=e84bedeMK7SYD6UQBVfb8_eIuUs82-fclVwR953zOUM,135976
|
|
58
|
+
pyphyschemtools/resources/svg/logo_pyPhysChem_0.svg,sha256=w7_OpHTbnf55dEThGEDLrRNbjDuI02O_zcXbMxLYqZk,18463
|
|
59
|
+
pyphyschemtools/resources/svg/logopyPhyschem.png,sha256=QBxeHTUJwbUEb9bvXxFH1pgKvrrV-5pAIdKr87_n7jQ,4202238
|
|
60
|
+
pyphyschemtools/resources/svg/logopyPhyschem_2.webp,sha256=kFEuV0DOPkDsS33ifN8EGyLOe4jIEPlmnbKjK36nzFk,115220
|
|
61
|
+
pyphyschemtools/resources/svg/logopyPhyschem_3.webp,sha256=bgneI51XBKy0Yg2zmXcqoPUC6Ow3NWkGg-yVdFImFNI,144648
|
|
62
|
+
pyphyschemtools/resources/svg/logopyPhyschem_4.webp,sha256=0jRfk1S9LbzQgqQN6tPCQysyCZbaQQdLqlVLSXuy_Ds,93012
|
|
63
|
+
pyphyschemtools/resources/svg/logopyPhyschem_5.png,sha256=sxWSpff5wVh65H13NlUHHe_4g0byTN69KUZi6PhZi3E,1826433
|
|
64
|
+
pyphyschemtools/resources/svg/logopyPhyschem_5.webp,sha256=R1MjWXJL3UrOwq6-dQF5uChw3c1kcu257McpzDMDQwM,90134
|
|
65
|
+
pyphyschemtools/resources/svg/logopyPhyschem_6.webp,sha256=-gDM0QemFMlhS6KDBCHCVYGMjuWBoIe04uBIn2PD60Y,103346
|
|
66
|
+
pyphyschemtools/resources/svg/logopyPhyschem_7.webp,sha256=6ij3TYZWcFcqjwHfO9kI2bEFzZOOwI2fWkuMuz6KObA,140670
|
|
67
|
+
pyphyschemtools/resources/svg/logos-Anaconda-pyPhysChem.png,sha256=PlT2nM90CDZBLedZdK3qTBNmrMKDj_rYiyRGS--feJA,170127
|
|
68
|
+
pyphyschemtools/resources/svg/logos-Anaconda-pyPhysChem.svg,sha256=GWcGrQXKA73-PUzVVCXBr35XnxDh8Hb4F4txEqLd9wY,1949
|
|
69
|
+
pyphyschemtools/resources/svg/pyPCBanner.svg,sha256=VMPxBM5_IVsx8qFDPV7xsyU20AXoOsay0t5l1KxdH4U,314955
|
|
70
|
+
pyphyschemtools/resources/svg/pyPhysChem-GitHubSocialMediaTemplate.png,sha256=ivb2e70asN15zQmQBPqeOzuDadCIHiW67wRjl1ds1MY,660416
|
|
71
|
+
pyphyschemtools/resources/svg/pyPhysChem-GitHubSocialMediaTemplate.svg,sha256=QfTilq-1wiwVmx05SHtwAGM1Gzihu706-CoyAMyG6Ug,3980384
|
|
72
|
+
pyphyschemtools/resources/svg/pyPhysChemBanner.png,sha256=sK5NwjbEYJvMAAzPBCqwvrBp_jXvYJHsexQAHxxjiE4,201435
|
|
73
|
+
pyphyschemtools/resources/svg/pyPhysChemBanner.svg,sha256=39LrLnFn7R681Hh3YXB3K17Sp0Xp3ynDOGUbXuORQ3s,4388883
|
|
74
|
+
pyphyschemtools/resources/svg/qrcode-pyPhysChem.png,sha256=rP7X-9eHL7HYj4ffmwBMLfQTaRIOyzShVfavRXiomtw,71070
|
|
75
|
+
pyphyschemtools/resources/svg/repository-open-graph-template.png,sha256=UlnW5BMkLGOv6IAnEi7teDYS_5qeSLmpxRMT9r9m-5Q,51470
|
|
76
|
+
pyphyschemtools-0.1.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
77
|
+
pyphyschemtools-0.1.0.dist-info/METADATA,sha256=czaz2iQUWNclIfmwqo9E1ZIKio-KGYN8_jB6jSsJcaw,1352
|
|
78
|
+
pyphyschemtools-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
79
|
+
pyphyschemtools-0.1.0.dist-info/top_level.txt,sha256=N92w2qk4LQ42OSdzK1R2h_x1CyUFaFBOrOML2RnmFgE,16
|
|
80
|
+
pyphyschemtools-0.1.0.dist-info/RECORD,,
|