naeural-client 2.1.1__py3-none-any.whl → 2.1.3__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.
- naeural_client/_ver.py +1 -1
- naeural_client/base/generic_session.py +156 -2
- naeural_client/code_cheker/base.py +8 -2
- naeural_client/const/apps.py +2 -1
- naeural_client/const/environment.py +3 -0
- naeural_client/default/instance/__init__.py +2 -2
- naeural_client/default/instance/{basic_telegram_bot_01_plugin.py → telegram_basic_bot_01_plugin.py} +1 -1
- naeural_client/default/instance/telegram_conversational_bot_01_plugin.py +7 -0
- {naeural_client-2.1.1.dist-info → naeural_client-2.1.3.dist-info}/METADATA +1 -1
- {naeural_client-2.1.1.dist-info → naeural_client-2.1.3.dist-info}/RECORD +12 -11
- {naeural_client-2.1.1.dist-info → naeural_client-2.1.3.dist-info}/WHEEL +0 -0
- {naeural_client-2.1.1.dist-info → naeural_client-2.1.3.dist-info}/licenses/LICENSE +0 -0
naeural_client/_ver.py
CHANGED
@@ -1717,13 +1717,49 @@ class GenericSession(BaseDecentrAIObject):
|
|
1717
1717
|
*,
|
1718
1718
|
node,
|
1719
1719
|
name,
|
1720
|
-
signature=PLUGIN_SIGNATURES.
|
1720
|
+
signature=PLUGIN_SIGNATURES.TELEGRAM_BASIC_BOT_01,
|
1721
1721
|
message_handler=None,
|
1722
1722
|
telegram_bot_token=None,
|
1723
1723
|
telegram_bot_token_env_key=ENVIRONMENT.TELEGRAM_BOT_TOKEN_ENV_KEY,
|
1724
|
+
telegram_bot_name=None,
|
1725
|
+
telegram_bot_name_env_key=ENVIRONMENT.TELEGRAM_BOT_NAME_ENV_KEY,
|
1724
1726
|
**kwargs
|
1725
1727
|
):
|
1728
|
+
"""
|
1729
|
+
Create a new basic Telegram bot on a node.
|
1730
|
+
|
1731
|
+
Parameters
|
1732
|
+
----------
|
1726
1733
|
|
1734
|
+
node : str
|
1735
|
+
Address or Name of the Naeural Edge Protocol edge node that will handle this Telegram bot.
|
1736
|
+
|
1737
|
+
name : str
|
1738
|
+
Name of the Telegram bot.
|
1739
|
+
|
1740
|
+
signature : str, optional
|
1741
|
+
The signature of the plugin that will be used. Defaults to PLUGIN_SIGNATURES.TELEGRAM_BASIC_BOT_01.
|
1742
|
+
|
1743
|
+
message_handler : callable, optional
|
1744
|
+
The message handler function that will be called when a message is received. Defaults to None.
|
1745
|
+
|
1746
|
+
telegram_bot_token : str, optional
|
1747
|
+
The Telegram bot token. Defaults to None.
|
1748
|
+
|
1749
|
+
telegram_bot_token_env_key : str, optional
|
1750
|
+
The environment variable key that holds the Telegram bot token. Defaults to ENVIRONMENT.TELEGRAM_BOT_TOKEN_ENV_KEY.
|
1751
|
+
|
1752
|
+
telegram_bot_name : str, optional
|
1753
|
+
The Telegram bot name. Defaults to None.
|
1754
|
+
|
1755
|
+
telegram_bot_name_env_key : str, optional
|
1756
|
+
The environment variable key that holds the Telegram bot name. Defaults to ENVIRONMENT.TELEGRAM_BOT_NAME_ENV_KEY.
|
1757
|
+
|
1758
|
+
Returns
|
1759
|
+
-------
|
1760
|
+
tuple
|
1761
|
+
`Pipeline` and a `Instance` objects tuple.
|
1762
|
+
"""
|
1727
1763
|
assert callable(message_handler), "The `message_handler` method parameter must be provided."
|
1728
1764
|
|
1729
1765
|
if telegram_bot_token is None:
|
@@ -1731,6 +1767,12 @@ class GenericSession(BaseDecentrAIObject):
|
|
1731
1767
|
if telegram_bot_token is None:
|
1732
1768
|
message = f"Warning! No Telegram bot token provided as via env {ENVIRONMENT.TELEGRAM_BOT_TOKEN_ENV_KEY} or explicitly as `telegram_bot_token` param."
|
1733
1769
|
raise ValueError(message)
|
1770
|
+
|
1771
|
+
if telegram_bot_name is None:
|
1772
|
+
telegram_bot_name = os.getenv(telegram_bot_name_env_key)
|
1773
|
+
if telegram_bot_name is None:
|
1774
|
+
message = f"Warning! No Telegram bot name provided as via env {ENVIRONMENT.TELEGRAM_BOT_NAME_ENV_KEY} or explicitly as `telegram_bot_name` param."
|
1775
|
+
raise ValueError(message)
|
1734
1776
|
|
1735
1777
|
|
1736
1778
|
pipeline: Pipeline = self.create_pipeline(
|
@@ -1741,12 +1783,15 @@ class GenericSession(BaseDecentrAIObject):
|
|
1741
1783
|
|
1742
1784
|
func_name, func_args, func_base64_code = pipeline._get_method_data(message_handler)
|
1743
1785
|
if len(func_args) != 2:
|
1744
|
-
raise ValueError("The message handler function must have exactly
|
1786
|
+
raise ValueError("The message handler function must have exactly 3 arguments: `plugin`, `message` and `user`.")
|
1745
1787
|
|
1788
|
+
obfuscated_token = telegram_bot_token[:4] + "*" * (len(telegram_bot_token) - 4)
|
1789
|
+
self.P(f"Creating telegram bot {telegram_bot_name} with token {obfuscated_token}...", color='b')
|
1746
1790
|
instance = pipeline.create_plugin_instance(
|
1747
1791
|
signature=signature,
|
1748
1792
|
instance_id=self.log.get_unique_id(),
|
1749
1793
|
telegram_bot_token=telegram_bot_token,
|
1794
|
+
telegram_bot_name=telegram_bot_name,
|
1750
1795
|
message_handler=func_base64_code,
|
1751
1796
|
message_handler_args=func_args, # mandatory message and user
|
1752
1797
|
message_handler_name=func_name, # not mandatory
|
@@ -1754,6 +1799,115 @@ class GenericSession(BaseDecentrAIObject):
|
|
1754
1799
|
)
|
1755
1800
|
return pipeline, instance
|
1756
1801
|
|
1802
|
+
|
1803
|
+
def create_telegram_conversational_bot(
|
1804
|
+
self,
|
1805
|
+
*,
|
1806
|
+
node,
|
1807
|
+
name,
|
1808
|
+
signature=PLUGIN_SIGNATURES.TELEGRAM_CONVERSATIONAL_BOT_01,
|
1809
|
+
telegram_bot_token=None,
|
1810
|
+
telegram_bot_token_env_key=ENVIRONMENT.TELEGRAM_BOT_TOKEN_ENV_KEY,
|
1811
|
+
telegram_bot_name=None,
|
1812
|
+
telegram_bot_name_env_key=ENVIRONMENT.TELEGRAM_BOT_NAME_ENV_KEY,
|
1813
|
+
|
1814
|
+
system_prompt=None,
|
1815
|
+
agent_type="API",
|
1816
|
+
api_token_env_key=ENVIRONMENT.TELEGRAM_API_AGENT_TOKEN_ENV_KEY,
|
1817
|
+
api_token=None,
|
1818
|
+
rag_source_url=None,
|
1819
|
+
**kwargs
|
1820
|
+
):
|
1821
|
+
|
1822
|
+
"""
|
1823
|
+
Create a new conversational Telegram bot on a node.
|
1824
|
+
|
1825
|
+
Parameters
|
1826
|
+
----------
|
1827
|
+
|
1828
|
+
node : str
|
1829
|
+
Address or Name of the Naeural Edge Protocol edge node that will handle this Telegram bot.
|
1830
|
+
|
1831
|
+
name : str
|
1832
|
+
Name of the Telegram bot.
|
1833
|
+
|
1834
|
+
signature : str, optional
|
1835
|
+
The signature of the plugin that will be used. Defaults to PLUGIN_SIGNATURES.TELEGRAM_BASIC_BOT_01.
|
1836
|
+
|
1837
|
+
telegram_bot_token : str, optional
|
1838
|
+
The Telegram bot token. Defaults to None.
|
1839
|
+
|
1840
|
+
telegram_bot_token_env_key : str, optional
|
1841
|
+
The environment variable key that holds the Telegram bot token. Defaults to ENVIRONMENT.TELEGRAM_BOT_TOKEN_ENV_KEY.
|
1842
|
+
|
1843
|
+
telegram_bot_name : str, optional
|
1844
|
+
The Telegram bot name. Defaults to None.
|
1845
|
+
|
1846
|
+
telegram_bot_name_env_key : str, optional
|
1847
|
+
The environment variable key that holds the Telegram bot name. Defaults to ENVIRONMENT.TELEGRAM_BOT_NAME_ENV_KEY.
|
1848
|
+
|
1849
|
+
system_prompt : str, optional
|
1850
|
+
The system prompt. Defaults to None.
|
1851
|
+
|
1852
|
+
agent_type : str, optional
|
1853
|
+
The agent type. Defaults to "API".
|
1854
|
+
|
1855
|
+
api_token_env_key : str, optional
|
1856
|
+
The environment variable key that holds the API token. Defaults to ENVIRONMENT.TELEGRAM_API_AGENT_TOKEN_ENV_KEY.
|
1857
|
+
|
1858
|
+
api_token : str, optional
|
1859
|
+
The API token. Defaults to None.
|
1860
|
+
|
1861
|
+
rag_source_url : str, optional
|
1862
|
+
The RAG database source URL upon which the bot will be able to generate responses. Defaults to None.
|
1863
|
+
|
1864
|
+
Returns
|
1865
|
+
-------
|
1866
|
+
tuple
|
1867
|
+
`Pipeline` and a `Instance` objects tuple.
|
1868
|
+
"""
|
1869
|
+
if agent_type == "API":
|
1870
|
+
if api_token is None:
|
1871
|
+
api_token = os.getenv(api_token_env_key)
|
1872
|
+
if api_token is None:
|
1873
|
+
message = f"Warning! No API token provided as via env {ENVIRONMENT.TELEGRAM_API_AGENT_TOKEN_ENV_KEY} or explicitly as `api_token` param."
|
1874
|
+
raise ValueError(message)
|
1875
|
+
|
1876
|
+
if telegram_bot_token is None:
|
1877
|
+
telegram_bot_token = os.getenv(telegram_bot_token_env_key)
|
1878
|
+
if telegram_bot_token is None:
|
1879
|
+
message = f"Warning! No Telegram bot token provided as via env {ENVIRONMENT.TELEGRAM_BOT_TOKEN_ENV_KEY} or explicitly as `telegram_bot_token` param."
|
1880
|
+
raise ValueError(message)
|
1881
|
+
|
1882
|
+
if telegram_bot_name is None:
|
1883
|
+
telegram_bot_name = os.getenv(telegram_bot_name_env_key)
|
1884
|
+
if telegram_bot_name is None:
|
1885
|
+
message = f"Warning! No Telegram bot name provided as via env {ENVIRONMENT.TELEGRAM_BOT_NAME_ENV_KEY} or explicitly as `telegram_bot_name` param."
|
1886
|
+
raise ValueError(message)
|
1887
|
+
|
1888
|
+
|
1889
|
+
pipeline: Pipeline = self.create_pipeline(
|
1890
|
+
node=node,
|
1891
|
+
name=name,
|
1892
|
+
# default TYPE is "Void"
|
1893
|
+
)
|
1894
|
+
|
1895
|
+
|
1896
|
+
obfuscated_token = telegram_bot_token[:4] + "*" * (len(telegram_bot_token) - 4)
|
1897
|
+
self.P(f"Creating telegram bot {telegram_bot_name} with token {obfuscated_token}...", color='b')
|
1898
|
+
instance = pipeline.create_plugin_instance(
|
1899
|
+
signature=signature,
|
1900
|
+
instance_id=self.log.get_unique_id(),
|
1901
|
+
telegram_bot_token=telegram_bot_token,
|
1902
|
+
telegram_bot_name=telegram_bot_name,
|
1903
|
+
system_prompt=system_prompt,
|
1904
|
+
agent_type=agent_type,
|
1905
|
+
api_token=api_token,
|
1906
|
+
rag_source_url=rag_source_url,
|
1907
|
+
**kwargs
|
1908
|
+
)
|
1909
|
+
return pipeline, instance
|
1910
|
+
|
1757
1911
|
|
1758
1912
|
def broadcast_instance_command_and_wait_for_response_payload(
|
1759
1913
|
self,
|
@@ -550,8 +550,14 @@ class BaseCodeChecker:
|
|
550
550
|
|
551
551
|
name = method.__name__
|
552
552
|
args = list(map(str, inspect.signature(method).parameters.values()))
|
553
|
-
|
553
|
+
##
|
554
|
+
first_arg = args[0]
|
555
|
+
first_arg = first_arg.split(':')[0]
|
556
|
+
first_arg = first_arg.split('=')[0]
|
557
|
+
first_arg = first_arg.strip()
|
558
|
+
if first_arg in ['self', 'cls', 'plugin']:
|
554
559
|
args = args[1:]
|
560
|
+
##
|
555
561
|
source = self.get_function_source_code(method)
|
556
562
|
base64_code = self.code_to_base64(source)
|
557
563
|
|
@@ -560,7 +566,7 @@ class BaseCodeChecker:
|
|
560
566
|
|
561
567
|
if __name__ == '__main__':
|
562
568
|
|
563
|
-
def some_function(plugin, x):
|
569
|
+
def some_function(plugin : int, x):
|
564
570
|
"""
|
565
571
|
A simple function that adds 1 to the input.
|
566
572
|
|
naeural_client/const/apps.py
CHANGED
@@ -7,5 +7,6 @@ class PLUGIN_SIGNATURES:
|
|
7
7
|
VIEW_SCENE_01 = 'VIEW_SCENE_01'
|
8
8
|
CUSTOM_WEB_APP_01 = 'CUSTOM_CODE_FASTAPI_01'
|
9
9
|
CHAIN_DIST_CUSTOM_JOB_01 = 'PROCESS_REAL_TIME_COLLECTED_DATA_CUSTOM_EXEC_CHAIN_DIST'
|
10
|
-
|
10
|
+
TELEGRAM_BASIC_BOT_01 = 'TELEGRAM_BASIC_BOT_01'
|
11
|
+
TELEGRAM_CONVERSATIONAL_BOT_01 = 'TELEGRAM_CONVERSATIONAL_BOT_01'
|
11
12
|
# INSERT_NEW_PLUGIN_HERE
|
@@ -2,7 +2,7 @@ from .net_mon_01_plugin import NetMon01
|
|
2
2
|
from .view_scene_01_plugin import ViewScene01
|
3
3
|
from .custom_web_app_01_plugin import CustomWebApp01
|
4
4
|
from .chain_dist_custom_job_01_plugin import ChainDistCustomJob01
|
5
|
-
from .
|
5
|
+
from .telegram_basic_bot_01_plugin import BasicTelegramBot01
|
6
6
|
|
7
7
|
|
8
8
|
class PLUGIN_TYPES:
|
@@ -13,4 +13,4 @@ class PLUGIN_TYPES:
|
|
13
13
|
VIEW_SCENE_01 = ViewScene01
|
14
14
|
CUSTOM_WEB_APP_01 = CustomWebApp01
|
15
15
|
CHAIN_DIST_CUSTOM_JOB_01 = ChainDistCustomJob01
|
16
|
-
|
16
|
+
TELEGRAM_BASIC_BOT_01 = BasicTelegramBot01
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: naeural_client
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.3
|
4
4
|
Summary: `naeural_client` is the Python SDK required for client app development for the Naeural Edge Protocol Edge Protocol framework
|
5
5
|
Project-URL: Homepage, https://github.com/Naeural Edge ProtocolEdgeProtocol/naeural_client
|
6
6
|
Project-URL: Bug Tracker, https://github.com/Naeural Edge ProtocolEdgeProtocol/naeural_client/issues
|
@@ -1,10 +1,10 @@
|
|
1
1
|
naeural_client/__init__.py,sha256=UKEDGS0wFYyxwmhEAKJGecO2vYbIfRYUP4SQgnK10IE,578
|
2
|
-
naeural_client/_ver.py,sha256=
|
2
|
+
naeural_client/_ver.py,sha256=9yGYKp4Aq8YyEua3enIbC407KkkIHPnt8UZ27gpzk30,330
|
3
3
|
naeural_client/base_decentra_object.py,sha256=qDBpitcyhr1eEXPD8cGFtcNPNf71fqNRsmOEcCpx4sM,4180
|
4
4
|
naeural_client/plugins_manager_mixin.py,sha256=X1JdGLDz0gN1rPnTN_5mJXR8JmqoBFQISJXmPR9yvCo,11106
|
5
5
|
naeural_client/base/__init__.py,sha256=hACh83_cIv7-PwYMM3bQm2IBmNqiHw-3PAfDfAEKz9A,259
|
6
6
|
naeural_client/base/distributed_custom_code_presets.py,sha256=cvz5R88P6Z5V61Ce1vHVVh8bOkgXd6gve_vdESDNAsg,2544
|
7
|
-
naeural_client/base/generic_session.py,sha256=
|
7
|
+
naeural_client/base/generic_session.py,sha256=BtpuXJFZgFESHwvzJp1XYw687u2OiP72A-NBaLRFN7s,75929
|
8
8
|
naeural_client/base/instance.py,sha256=kcZJmjLBtx8Bjj_ysIOx1JmLA-qSpG7E28j5rq6IYus,20444
|
9
9
|
naeural_client/base/pipeline.py,sha256=KwcPWD2XMvHotWFMpcnIycFhqiNnZuyUTUWiLU0PM5Y,57519
|
10
10
|
naeural_client/base/plugin_template.py,sha256=qGaXByd_JZFpjvH9GXNbT7KaitRxIJB6-1IhbKrZjq4,138123
|
@@ -19,27 +19,28 @@ naeural_client/bc/ec.py,sha256=8ryEvc3__lVXSoYxd1WoTy9c8uC5Q_8R1uME7CeloIg,8578
|
|
19
19
|
naeural_client/certs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
20
|
naeural_client/certs/r9092118.ala.eu-central-1.emqxsl.com.crt,sha256=y-6io0tseyx9-a4Pmde1z1gPULtJNSYUpG_YFkYaMKU,1337
|
21
21
|
naeural_client/code_cheker/__init__.py,sha256=pwkdeZGVL16ZA4Qf2mRahEhoOvKhL7FyuQbMFLr1E5M,33
|
22
|
-
naeural_client/code_cheker/base.py,sha256=
|
22
|
+
naeural_client/code_cheker/base.py,sha256=lT5DRIFO5rqzsMNCmdMRfkAeevmezozehyfgmhnKpuI,19074
|
23
23
|
naeural_client/code_cheker/checker.py,sha256=QWupeM7ToancVIq1tRUxRNUrI8B5l5eoY0kDU4-O5aE,7365
|
24
24
|
naeural_client/comm/__init__.py,sha256=za3B2HUKNXzYtjElMgGM9xbxNsdQfFY4JB_YzdyFkVU,76
|
25
25
|
naeural_client/comm/amqp_wrapper.py,sha256=hzj6ih07DnLQy2VSfA88giDIFHaCp9uSdGLTA-IFE4s,8535
|
26
26
|
naeural_client/comm/mqtt_wrapper.py,sha256=Ig3bFZkCbWd4y_Whn2PPa91Z3aLgNbNPau6Tn5yLPZ8,16167
|
27
27
|
naeural_client/const/README.md,sha256=6OHesr-f5NBuuJGryEoi_TCu2XdlhfQYlDKx_IJoXeg,177
|
28
28
|
naeural_client/const/__init__.py,sha256=G7Fa50SpEhAPOnL8_mxgVmJ0Xq1qEncWd75pg2BkiG4,416
|
29
|
-
naeural_client/const/apps.py,sha256=
|
29
|
+
naeural_client/const/apps.py,sha256=TJpbD7-1tIKxMdpVgZMHOka1k7a6vtW45rQL87K-jvE,507
|
30
30
|
naeural_client/const/base.py,sha256=V94oaT7xYrrTGxmLJlynxmbFujVX0G9wIfC8TilH5MU,2548
|
31
31
|
naeural_client/const/comms.py,sha256=La6JXWHexH8CfcBCKyT4fCIoeaoZlcm7KtZ57ab4ZgU,2201
|
32
|
-
naeural_client/const/environment.py,sha256=
|
32
|
+
naeural_client/const/environment.py,sha256=iytmTDgbOjvORPwHQmc0K0r-xJx7dnnzNnqAJJiFCDA,870
|
33
33
|
naeural_client/const/formatter.py,sha256=AW3bWlqf39uaqV4BBUuW95qKYfF2OkkU4f9hy3kSVhM,200
|
34
34
|
naeural_client/const/heartbeat.py,sha256=jGHmKfeHTFOXJaKUT3o_ocnQyF-EpcLeunW-ifkYKfU,2534
|
35
35
|
naeural_client/const/misc.py,sha256=1ypROmZsOyp_8zG2LARwPeo-YfXuyYqZnml0elTP4kw,211
|
36
36
|
naeural_client/const/payload.py,sha256=k24vH9iJIBBPnCXx7HAEuli2fNAETK7h8ZuVKyKLgbk,5725
|
37
37
|
naeural_client/default/__init__.py,sha256=ozU6CMMuWl0LhG8Ae3LrZ65a6tLrptfscVYGf83zjxM,46
|
38
|
-
naeural_client/default/instance/__init__.py,sha256=
|
39
|
-
naeural_client/default/instance/basic_telegram_bot_01_plugin.py,sha256=4674YFg5DfGO8_bYA1Uo77duZgKYGFX1J0Xp8YzjyPM,161
|
38
|
+
naeural_client/default/instance/__init__.py,sha256=Itb4l6_DR6CCw8KAxyQKlCmALyzDasNHIfM9VB-Umak,548
|
40
39
|
naeural_client/default/instance/chain_dist_custom_job_01_plugin.py,sha256=QtHi3uXKsVs9eyMgbnvBVbMylErhV1Du4X2-7zDL7Y0,1915
|
41
40
|
naeural_client/default/instance/custom_web_app_01_plugin.py,sha256=ZDe-QXmr6KLyUx5wzA3xVrMPg8yHnWLUbGjZtB0PFgg,4785
|
42
41
|
naeural_client/default/instance/net_mon_01_plugin.py,sha256=u85i2AiYHkLJnam0wOx-m71hlp0EYyNtk3JwbkOrvHg,1208
|
42
|
+
naeural_client/default/instance/telegram_basic_bot_01_plugin.py,sha256=P_W2K_ng7svbhoIoYGvkGxa4v9UUoxuOAAgtoM36wDo,161
|
43
|
+
naeural_client/default/instance/telegram_conversational_bot_01_plugin.py,sha256=XkyE-uNbtFnTSGA1nOf-XNmUipAUjhg0xXV1glRb7gc,179
|
43
44
|
naeural_client/default/instance/view_scene_01_plugin.py,sha256=5kMhd23kL5AYCdOJzrdCqi2ohoQNvmpv8oE6hWQtUWk,720
|
44
45
|
naeural_client/default/session/mqtt_session.py,sha256=dpQcBhhVZDo458v0IqJMZb1CsTn-TxXhYjNlyJp9Rp8,2414
|
45
46
|
naeural_client/io_formatter/__init__.py,sha256=_wy7c-Z9kgb26jN7uNTDq88G7xZ3wI_ObuQd3QWNPkQ,85
|
@@ -74,7 +75,7 @@ naeural_client/logging/tzlocal/windows_tz.py,sha256=Sv9okktjZJfRGGUOOppsvQuX_eXy
|
|
74
75
|
naeural_client/utils/__init__.py,sha256=mAnke3-MeRzz3nhQvhuHqLnpaaCSmDxicd7Ck9uwpmI,77
|
75
76
|
naeural_client/utils/comm_utils.py,sha256=4cS9llRr_pK_3rNgDcRMCQwYPO0kcNU7AdWy_LtMyCY,1072
|
76
77
|
naeural_client/utils/dotenv.py,sha256=_AgSo35n7EnQv5yDyu7C7i0kHragLJoCGydHjvOkrYY,2008
|
77
|
-
naeural_client-2.1.
|
78
|
-
naeural_client-2.1.
|
79
|
-
naeural_client-2.1.
|
80
|
-
naeural_client-2.1.
|
78
|
+
naeural_client-2.1.3.dist-info/METADATA,sha256=HNXZUOAndQihA5zFOSH3ET9GNzb64O96Y7zr0VDIh78,14457
|
79
|
+
naeural_client-2.1.3.dist-info/WHEEL,sha256=3U_NnUcV_1B1kPkYaPzN-irRckL5VW_lytn0ytO_kRY,87
|
80
|
+
naeural_client-2.1.3.dist-info/licenses/LICENSE,sha256=cvOsJVslde4oIaTCadabXnPqZmzcBO2f2zwXZRmJEbE,11311
|
81
|
+
naeural_client-2.1.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|