def main(): locale.setlocale(locale.LC_ALL, "") config = Config("./data/config.json") company = get_data_from_json("./data/company.json") config.set("payment_paypal", "PayPal address: " + company["paypal"]) with codecs.open("template/bank-details.html", "r", encoding="utf-8") as html_doc: config.set("payment_wire", html_doc.read()) template = InvoiceTemplate(config.get("html_template_path"), company) if template.is_invalid(): return invoice_list = InvoiceList(config.get("database_path")) invoice_list.parse_csv(config) htmls = map( template.get_invoices_as_html, invoice_list.db, itertools.repeat(config) ) filenames = (invoice.get_filename() for invoice in invoice_list.db) db_file_path = config.get("database_path") assert os.path.isfile(db_file_path) db_file_name = os.path.splitext(os.path.basename(db_file_path))[0] dir_out = os.path.join(config.get("output_path"), db_file_name) set_up_output_directory(dir_out) save_html_files(dir_out, htmls, filenames) render(dir_out, as_png=False)
def main(): # settings of tornado application settings = { 'root_path': root_path, 'data_path': os.path.join(root_path, 'data'), 'conf_path': os.path.join(root_path, 'data', 'config.ini'), 'index_path': os.path.join(root_path, 'static', 'index.html'), 'static_path': os.path.join(root_path, 'static'), 'xsrf_cookies': True, 'cookie_secret': make_cookie_secret(), } application = web.Application([ (r'/xsrf', web.XsrfHandler), (r'/authstatus', web.AuthStatusHandler), (r'/login', web.LoginHandler), (r'/logout', web.LogoutHandler), (r'/query/(.+)', web.QueryHandler), (r'/utils/network/(.+?)(?:/(.+))?', web.UtilsNetworkHandler), (r'/utils/process/(.+?)(?:/(.+))?', web.UtilsProcessHandler), (r'/utils/time/(.+?)(?:/(.+))?', web.UtilsTimeHandler), (r'/utils/ssl/(.+?)(?:/(.+))?', web.UtilsSSLHandler), (r'/setting/(.+)', web.SettingHandler), (r'/operation/(.+)', web.OperationHandler), (r'/page/(.+)/(.+)', web.PageHandler), (r'/backend/(.+)', web.BackendHandler), (r'/sitepackage/(.+)', web.SitePackageHandler), (r'/client/(.+)', web.ClientHandler), (r'/((?:css|js|js.min|lib|partials|images|favicon\.ico|robots\.txt)(?:\/.*)?)', web.StaticFileHandler, { 'path': settings['static_path'] }), (r'/($)', web.StaticFileHandler, { 'path': settings['index_path'] }), (r'/file/(.+)', web.FileDownloadHandler, { 'path': '/' }), (r'/fileupload', web.FileUploadHandler), (r'/version', web.VersionHandler), (r'/.*', web.ErrorHandler, { 'status_code': 404 }), ], **settings) # read configuration from config.ini cfg = Config(settings['conf_path']) server_ip = cfg.get('server', 'ip') server_port = cfg.get('server', 'port') server = tornado.httpserver.HTTPServer(application) server.listen(server_port, address=server_ip) write_pid() tornado.ioloop.IOLoop.instance().start()
def timezone(self, inifile, timezone=None): """Get or set system timezone. Pass None to parameter config (as default) to get timezone, or pass timezone full name like 'Asia/Shanghai' to set timezone. """ tzpath = '/etc/localtime' zonepath = '/usr/share/zoneinfo' config = Config(inifile) if not config.has_section('time'): config.add_section('time') if timezone == None: # firstly read from config file timezone = '' if config.has_option('time', 'timezone'): timezone = config.get('time', 'timezone') if timezone: return timezone # or else check the system config file dist = ServerInfo.dist() if dist['name'] in ('centos', 'redhat'): clockinfo = raw_loadconfig('/etc/sysconfig/clock') if clockinfo and 'ZONE' in clockinfo: timezone = clockinfo['ZONE'] return timezone else: pass # or else find the file match /etc/localtime with open(tzpath) as f: tzdata = f.read() regions = ServerSet.timezone_regions() for region in regions: regionpath = os.path.join(zonepath, region) for zonefile in os.listdir(regionpath): if not os.path.isfile(os.path.join(regionpath, zonefile)): continue with open(os.path.join(regionpath, zonefile)) as f: if f.read() == tzdata: # got it! return '%s/%s' % (region, zonefile) else: # check and set the timezone timezonefile = os.path.join(zonepath, timezone) if not os.path.exists(timezonefile): return False try: shutil.copyfile(timezonefile, tzpath) except: return False # write timezone setting to config file return config.set('time', 'timezone', timezone)
from modules.config import Config from modules.simplejwt import SimpleJWT config = Config('config.ini') simple_jwt = SimpleJWT(config.get('JWT', 'secret'))