remote-run-everything 2.0.2__tar.gz → 2.0.4__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.
- {remote_run_everything-2.0.2/remote_run_everything.egg-info → remote_run_everything-2.0.4}/PKG-INFO +1 -1
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/pyproject.toml +1 -1
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/crud_sqlalchemy.py +50 -10
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/common1.py +5 -1
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/sqlacodegen_go_struct.py +5 -1
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4/remote_run_everything.egg-info}/PKG-INFO +1 -1
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/LICENSE +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/MANIFEST.in +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/README.md +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/__init__.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/__init__.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/backup.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/crude_duck.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/kv_store.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/__init__.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/by_http.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/by_http_server.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/by_http_tool.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/record_mod.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/__init__.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/no_sql.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/no_sql_mysql.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/no_sql_pg.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/no_sql_tool.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/__init__.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/common.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/decorators.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/vsconf/conf_txt.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/vsconf/core.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything.egg-info/SOURCES.txt +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything.egg-info/dependency_links.txt +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything.egg-info/top_level.txt +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/setup.cfg +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/test/test.py +0 -0
- {remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/test/test_server.py +0 -0
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import os, pymysql
|
|
2
2
|
from urllib.parse import quote_plus
|
|
3
|
-
|
|
4
|
-
from sqlalchemy import create_engine, select, update, and_, insert, delete
|
|
3
|
+
from sqlalchemy.ext.automap import automap_base
|
|
4
|
+
from sqlalchemy import create_engine, select, update, and_, insert, delete, text
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class Crud:
|
|
8
|
+
def auto_tab(self, engine):
|
|
9
|
+
Base = automap_base()
|
|
10
|
+
Base.prepare(autoload_with=engine)
|
|
11
|
+
# FinIndi = Base.classes.fin_indi
|
|
12
|
+
return Base.classes
|
|
13
|
+
|
|
8
14
|
def sqlite_engine(self, dbpath):
|
|
9
15
|
dir = os.path.dirname(dbpath)
|
|
10
16
|
os.makedirs(dir, exist_ok=True)
|
|
@@ -50,10 +56,11 @@ class Crud:
|
|
|
50
56
|
cols = mod.__dict__['__annotations__'].keys()
|
|
51
57
|
else:
|
|
52
58
|
cols = [i for i in mod.__dict__.keys() if not i.startswith("__")]
|
|
59
|
+
cols = [i for i in cols if i != '_sa_class_manager']
|
|
53
60
|
return cols
|
|
54
61
|
|
|
55
62
|
def insert_many(self, engine, mod, l):
|
|
56
|
-
if len(l)==0:return
|
|
63
|
+
if len(l) == 0: return
|
|
57
64
|
cols = self.table_columns(mod)
|
|
58
65
|
with engine.connect() as conn:
|
|
59
66
|
for dic in l:
|
|
@@ -78,20 +85,53 @@ class Crud:
|
|
|
78
85
|
conn.execute(stmt)
|
|
79
86
|
conn.commit()
|
|
80
87
|
|
|
88
|
+
def update(self, engine, mod, cond, dic):
|
|
89
|
+
cols = self.table_columns(mod)
|
|
90
|
+
dic = {k: v for k, v in dic.items() if k in cols}
|
|
91
|
+
with engine.connect() as conn:
|
|
92
|
+
stmt = update(mod).where(cond).values(dic)
|
|
93
|
+
conn.execute(stmt)
|
|
94
|
+
conn.commit()
|
|
95
|
+
|
|
96
|
+
# cond = and_(BdhPrice.date == dic['date'], BdhPrice.goodsName == dic['goodsName'])
|
|
97
|
+
# cond1 = and_(FinIndi.year == '2020')
|
|
98
|
+
# cond2 = or_(FinIndi.year == "2021")
|
|
99
|
+
# cond = or_(cond1, cond2)
|
|
81
100
|
def upsert(self, engine, mod, cond, dic):
|
|
82
|
-
|
|
83
|
-
if
|
|
84
|
-
self.
|
|
101
|
+
exists = self.query_cond(engine, mod, cond)
|
|
102
|
+
if len(exists) > 0:
|
|
103
|
+
self.update(engine, mod, cond, dic)
|
|
85
104
|
return
|
|
86
105
|
self.insert_one(engine, mod, dic)
|
|
87
106
|
|
|
88
107
|
def delete_by_id(self, engine, mod, id):
|
|
108
|
+
cond = and_(mod.id == id)
|
|
89
109
|
with engine.connect() as conn:
|
|
90
|
-
stmt = delete(mod).where(
|
|
110
|
+
stmt = delete(mod).where(cond)
|
|
91
111
|
conn.execute(stmt)
|
|
92
112
|
conn.commit()
|
|
93
113
|
|
|
94
114
|
def delete(self, engine, mod, cond):
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
115
|
+
with engine.connect() as conn:
|
|
116
|
+
stmt = delete(mod).where(cond)
|
|
117
|
+
conn.execute(stmt)
|
|
118
|
+
conn.commit()
|
|
119
|
+
|
|
120
|
+
def query_cond(self, engine, mod, cond):
|
|
121
|
+
mdic = lambda cols, row: {i[0]: i[1] for i in zip(cols, row)}
|
|
122
|
+
with engine.connect() as ses:
|
|
123
|
+
stmt = select(mod).where(cond)
|
|
124
|
+
rows = ses.execute(stmt)
|
|
125
|
+
cols = rows.keys()
|
|
126
|
+
return [mdic(cols, r) for r in rows]
|
|
127
|
+
|
|
128
|
+
def query_sql(self, engine, sql):
|
|
129
|
+
mdic = lambda cols, row: {i[0]: i[1] for i in zip(cols, row)}
|
|
130
|
+
with engine.connect() as ses:
|
|
131
|
+
rows = ses.execute(text(sql))
|
|
132
|
+
cols = rows.keys()
|
|
133
|
+
return [mdic(cols, r) for r in rows]
|
|
134
|
+
|
|
135
|
+
def execute_sql(self, engine, sql):
|
|
136
|
+
with engine.connect() as ses:
|
|
137
|
+
return ses.execute(text(sql))
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/common1.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import jinja2, requests, os
|
|
2
2
|
import pandas as pd
|
|
3
3
|
import base64
|
|
4
|
-
import os, signal, glob, arrow
|
|
4
|
+
import os, signal, glob, arrow, uuid, hashlib
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class Common1:
|
|
@@ -94,6 +94,10 @@ class Common1:
|
|
|
94
94
|
if dif.days > n:
|
|
95
95
|
os.remove(f)
|
|
96
96
|
|
|
97
|
+
def str2uuid(self, s):
|
|
98
|
+
hex_string = hashlib.md5(s.encode("UTF-8")).hexdigest()
|
|
99
|
+
return str(uuid.UUID(hex=hex_string))
|
|
100
|
+
|
|
97
101
|
|
|
98
102
|
if __name__ == '__main__':
|
|
99
103
|
g = Common1()
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
|
|
4
|
+
'''
|
|
5
|
+
sqlacodegen mssql+pyodbc://sa:a@127.0.0.1:1433/pstarback?driver=ODBC+Driver+17+for+SQL+Server > ./test.py
|
|
6
|
+
'''
|
|
7
|
+
|
|
4
8
|
|
|
5
9
|
@dataclass
|
|
6
10
|
class Tab:
|
|
@@ -105,5 +109,5 @@ class Sql2go:
|
|
|
105
109
|
|
|
106
110
|
|
|
107
111
|
if __name__ == '__main__':
|
|
108
|
-
s =
|
|
112
|
+
s = Sql2go("./pstarback.py")
|
|
109
113
|
s.write_go()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/__init__.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/__init__.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/backup.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/crude_duck.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/db/kv_store.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/__init__.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/deploy/by_http.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/__init__.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/no_sql.py
RENAMED
|
File without changes
|
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/nosql/no_sql_pg.py
RENAMED
|
File without changes
|
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/__init__.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/tools/common.py
RENAMED
|
File without changes
|
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/vsconf/conf_txt.py
RENAMED
|
File without changes
|
{remote_run_everything-2.0.2 → remote_run_everything-2.0.4}/remote_run_everything/vsconf/core.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|