Split utils.py
This commit is contained in:
parent
e7b9ae9ada
commit
f25543c391
130
odoo-rpc.py
130
odoo-rpc.py
|
@ -12,80 +12,31 @@ import odoorpc # pip install odoorpc
|
||||||
#from typing import Iterable # > py38
|
#from typing import Iterable # > py38
|
||||||
from collections import Iterable # < py38
|
from collections import Iterable # < py38
|
||||||
|
|
||||||
|
from utils import *
|
||||||
from renderers import render, tsv
|
from renderers import render, tsv
|
||||||
|
|
||||||
|
|
||||||
def eprint(*args, **kwargs):
|
|
||||||
print(*args, file=sys.stderr, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
# CONFIG
|
# CONFIG
|
||||||
FOLDER = '/home/dig/odoo-export/datas'
|
FOLDER = '/home/dig/odoo-export/datas'
|
||||||
# PARAMS = sys.argv[1:]
|
|
||||||
PARAMS = []
|
|
||||||
OPTS = {}
|
|
||||||
for param in sys.argv[1:]:
|
|
||||||
# if param[0] == '-':
|
|
||||||
# kv = param[1:].split( '=' )
|
|
||||||
# if len(kv) == 1:
|
|
||||||
# OPTS[kv[0]] = False
|
|
||||||
# else:
|
|
||||||
# OPTS[kv[0]] = kv[1]
|
|
||||||
# elif
|
|
||||||
if param[0] == '+':
|
|
||||||
kv = param[1:].split( '=' )
|
|
||||||
if len(kv) == 1:
|
|
||||||
OPTS[kv[0]] = True
|
|
||||||
else:
|
|
||||||
OPTS[kv[0]] = kv[1]
|
|
||||||
else:
|
|
||||||
PARAMS.append( param )
|
|
||||||
|
|
||||||
MODEL_IGNORE = []
|
MODEL_IGNORE = []
|
||||||
with open(".modelignore", "r") as file:
|
with open(".modelignore", "r") as file:
|
||||||
for line in file:
|
for line in file:
|
||||||
MODEL_IGNORE.append(line.strip())
|
MODEL_IGNORE.append(line.strip())
|
||||||
|
|
||||||
eprint( len(sys.argv), 'argument(s):', PARAMS, OPTS )
|
|
||||||
eprint( MODEL_IGNORE )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ODOO
|
||||||
|
|
||||||
|
# Prepare the connection to the server
|
||||||
|
# odoo = odoorpc.ODOO('localhost', port=8069)
|
||||||
|
|
||||||
# def flatten(items):
|
# Check available databases
|
||||||
# """Yield items from any nested iterable; see Reference."""
|
# eprint( 'Databases: ', odoo.db.list() )
|
||||||
# for x in items:
|
#jlog( odoo.db.list() )
|
||||||
# if isinstance(x, Iterable) and not isinstance(x, (str, bytes)):
|
|
||||||
# for sub_x in flatten(x):
|
|
||||||
# yield sub_x
|
|
||||||
# else:
|
|
||||||
# yield x
|
|
||||||
|
|
||||||
|
|
||||||
def jlog( obj ):
|
|
||||||
print( json.dumps(obj, indent=4) ) #"\t") )
|
|
||||||
|
|
||||||
def ensure_dir(d):
|
|
||||||
if not os.path.exists(d):
|
|
||||||
os.makedirs(d)
|
|
||||||
|
|
||||||
def args2domains( list ):
|
|
||||||
domains = []
|
|
||||||
while len(list) > 0:
|
|
||||||
str = list[0]
|
|
||||||
if str == '&' or str == '|' or str == '!':
|
|
||||||
domains.append( str )
|
|
||||||
list = list[1:]
|
|
||||||
else:
|
|
||||||
domains.append( (list[0], list[1], list[2]) )
|
|
||||||
list = list[3:]
|
|
||||||
return domains
|
|
||||||
|
|
||||||
# eprint( args2domains(sys.argv[3:]) )
|
|
||||||
#quit()
|
|
||||||
|
|
||||||
odoo = None
|
odoo = None
|
||||||
|
|
||||||
|
@ -111,16 +62,6 @@ def autolog():
|
||||||
return odoo
|
return odoo
|
||||||
|
|
||||||
|
|
||||||
# Prepare the connection to the server
|
|
||||||
# odoo = odoorpc.ODOO('localhost', port=8069)
|
|
||||||
|
|
||||||
# Check available databases
|
|
||||||
# eprint( 'Databases: ', odoo.db.list() )
|
|
||||||
#jlog( odoo.db.list() )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Simple 'raw' query
|
# Simple 'raw' query
|
||||||
#user_data = odoo.execute('res.users', 'read', [user.id])
|
#user_data = odoo.execute('res.users', 'read', [user.id])
|
||||||
|
@ -138,15 +79,6 @@ def autolog():
|
||||||
# Update data through a record
|
# Update data through a record
|
||||||
#user.name = "Brian Jones"
|
#user.name = "Brian Jones"
|
||||||
|
|
||||||
def file_path( muid, format ):
|
|
||||||
return "%s/%s.%s" % ( FOLDER, muid, format )
|
|
||||||
|
|
||||||
def json_path( model, id ):
|
|
||||||
return "%s/%s.json" % ( FOLDER, Muid(model, id) )
|
|
||||||
|
|
||||||
def Muid( model, id ):
|
|
||||||
return "%s/%s" % ( model, id )
|
|
||||||
|
|
||||||
def get_schema( name ):
|
def get_schema( name ):
|
||||||
eprint( 'get_schema' )
|
eprint( 'get_schema' )
|
||||||
Model = odoo.env['ir.model']
|
Model = odoo.env['ir.model']
|
||||||
|
@ -468,18 +400,6 @@ def export_json( model, domains ):
|
||||||
else:
|
else:
|
||||||
print('Already exists %s' % (_filename) )
|
print('Already exists %s' % (_filename) )
|
||||||
|
|
||||||
def uniq( arr ):
|
|
||||||
return list(set(arr))
|
|
||||||
|
|
||||||
def groupby_model( arr ):
|
|
||||||
res = {}
|
|
||||||
for muid in arr:
|
|
||||||
model, id = muid.split('/')
|
|
||||||
if not model in res:
|
|
||||||
res[model] = []
|
|
||||||
res[model].append( int(id) )
|
|
||||||
return res
|
|
||||||
|
|
||||||
def save( model, domains ):
|
def save( model, domains ):
|
||||||
force = OPTS['force'] if 'force' in OPTS else False
|
force = OPTS['force'] if 'force' in OPTS else False
|
||||||
models = flatten_stack( lookup( model, domains ) )
|
models = flatten_stack( lookup( model, domains ) )
|
||||||
|
@ -491,6 +411,38 @@ def save( model, domains ):
|
||||||
|
|
||||||
|
|
||||||
# AUTO EXEC
|
# AUTO EXEC
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# PARAMS = sys.argv[1:]
|
||||||
|
PARAMS = []
|
||||||
|
OPTS = {}
|
||||||
|
for param in sys.argv[1:]:
|
||||||
|
# if param[0] == '-':
|
||||||
|
# kv = param[1:].split( '=' )
|
||||||
|
# if len(kv) == 1:
|
||||||
|
# OPTS[kv[0]] = False
|
||||||
|
# else:
|
||||||
|
# OPTS[kv[0]] = kv[1]
|
||||||
|
# elif
|
||||||
|
if param[0] == '+':
|
||||||
|
kv = param[1:].split( '=' )
|
||||||
|
if len(kv) == 1:
|
||||||
|
OPTS[kv[0]] = True
|
||||||
|
else:
|
||||||
|
OPTS[kv[0]] = kv[1]
|
||||||
|
else:
|
||||||
|
PARAMS.append( param )
|
||||||
|
|
||||||
|
|
||||||
|
eprint( len(sys.argv), 'argument(s):', PARAMS, OPTS )
|
||||||
|
eprint( MODEL_IGNORE )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MODEL = PARAMS[0]
|
MODEL = PARAMS[0]
|
||||||
if len(PARAMS) > 1:
|
if len(PARAMS) > 1:
|
||||||
METHOD = PARAMS[1]
|
METHOD = PARAMS[1]
|
||||||
|
@ -560,7 +512,3 @@ elif MODEL == 'schema':
|
||||||
get_schema( METHOD )
|
get_schema( METHOD )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# if __name__ == "__main__":
|
|
||||||
# import sys
|
|
||||||
# fib(int(sys.argv[1]))
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
from __future__ import print_function
|
||||||
|
import os
|
||||||
|
# import sys
|
||||||
|
import json
|
||||||
|
# import odoorpc # pip install odoorpc
|
||||||
|
# #from typing import Iterable # > py38
|
||||||
|
# from collections import Iterable # < py38
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def eprint(*args, **kwargs):
|
||||||
|
print(*args, file=sys.stderr, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
# def flatten(items):
|
||||||
|
# """Yield items from any nested iterable; see Reference."""
|
||||||
|
# for x in items:
|
||||||
|
# if isinstance(x, Iterable) and not isinstance(x, (str, bytes)):
|
||||||
|
# for sub_x in flatten(x):
|
||||||
|
# yield sub_x
|
||||||
|
# else:
|
||||||
|
# yield x
|
||||||
|
|
||||||
|
|
||||||
|
def jlog( obj ):
|
||||||
|
print( json.dumps(obj, indent=4) ) #"\t") )
|
||||||
|
|
||||||
|
def ensure_dir(d):
|
||||||
|
if not os.path.exists(d):
|
||||||
|
os.makedirs(d)
|
||||||
|
|
||||||
|
def args2domains( list ):
|
||||||
|
domains = []
|
||||||
|
while len(list) > 0:
|
||||||
|
str = list[0]
|
||||||
|
if str == '&' or str == '|' or str == '!':
|
||||||
|
domains.append( str )
|
||||||
|
list = list[1:]
|
||||||
|
else:
|
||||||
|
domains.append( (list[0], list[1], list[2]) )
|
||||||
|
list = list[3:]
|
||||||
|
return domains
|
||||||
|
|
||||||
|
# eprint( args2domains(sys.argv[3:]) )
|
||||||
|
|
||||||
|
|
||||||
|
def file_path( muid, format ):
|
||||||
|
return "%s/%s.%s" % ( FOLDER, muid, format )
|
||||||
|
|
||||||
|
def json_path( model, id ):
|
||||||
|
return "%s/%s.json" % ( FOLDER, Muid(model, id) )
|
||||||
|
|
||||||
|
def Muid( model, id ):
|
||||||
|
return "%s/%s" % ( model, id )
|
||||||
|
|
||||||
|
def uniq( arr ):
|
||||||
|
return list(set(arr))
|
||||||
|
|
||||||
|
def groupby_model( arr ):
|
||||||
|
res = {}
|
||||||
|
for muid in arr:
|
||||||
|
model, id = muid.split('/')
|
||||||
|
if not model in res:
|
||||||
|
res[model] = []
|
||||||
|
res[model].append( int(id) )
|
||||||
|
return res
|
Loading…
Reference in New Issue