version: 1.0 mime: .yml: text/yaml .yaml: text/yaml .md: text/markdown .markdown: text/markdown .mjs: text/javascript .json: application/json .svg: image/svg+xml .py: text/plain .R: text/plain .h5: application/x-hdf5 .hdf5: application/x-hdf5 .pkl: application/octet-stream .ttf: font/ttf .otf: font/otf .woff: font/woff .woff2: font/woff2 .map: application/json threadpool: workers: 16 cache: memory: type: memory size: 500000000 default: true handlers: BaseHandler: error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html FileHandler: ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' FormHandler: formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 FilterHandler: formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 MessageHandler: message_default: POST: id: base64.urlsafe_b64encode(uuid.uuid4().bytes).strip(b"=").decode('utf-8') user: handler.current_user.get('id', None) if handler.current_user else None timestamp: datetime.datetime.utcnow().isoformat() log: version: 1 root: level: DEBUG handlers: - console - logfile loggers: gramex: level: WARNING propagate: false handlers: - gramex-console - gramex-logfile gramex.alert: level: INFO propagate: false handlers: - alert gramex.requests: level: INFO propagate: false handlers: - requests tornado.access: {} tornado.application: {} tornado.general: {} elasticsearch: level: INFO watchdog: level: INFO gramex.user: level: INFO propagate: false handlers: - user matplotlib: level: INFO botocore: level: INFO MARKDOWN: level: INFO passlib: level: INFO PIL: level: INFO handlers: none: class: logging.NullHandler console: class: logging.StreamHandler formatter: console gramex-console: class: logging.StreamHandler formatter: gramex-console user: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true class: gramex.config.TimedRotatingCSVHandler filename: /home/ubuntu/.config/gramexdata/logs/user.csv keys: - datetime - event - session - user - ip - headers.User-Agent level: INFO alert: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true class: gramex.config.TimedRotatingCSVHandler filename: /home/ubuntu/.config/gramexdata/logs/alert.csv keys: - datetime - alert - service - from - to - cc - bcc - subject - attachments level: INFO logfile: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true formatter: text class: logging.handlers.TimedRotatingFileHandler filename: /home/ubuntu/.config/gramexdata/logs/gramex.log gramex-logfile: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true class: logging.handlers.TimedRotatingFileHandler filename: /home/ubuntu/.config/gramexdata/logs/gramex.log formatter: gramex-text requests: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true class: gramex.config.TimedRotatingCSVHandler filename: /home/ubuntu/.config/gramexdata/logs/requests.csv level: INFO keys: - time - ip - user.id - status - duration - method - uri - error text: class: logging.StreamHandler formatter: text access-log: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true class: logging.handlers.TimedRotatingFileHandler level: INFO formatter: file filename: /home/ubuntu/.config/gramexdata/logs/access.csv warn-log: encoding: utf-8 when: W0 interval: 1 utc: false backupCount: 52 delay: true class: logging.handlers.TimedRotatingFileHandler level: WARN formatter: file filename: /home/ubuntu/.config/gramexdata/logs/warn.csv formatters: text: format: '%(levelname)1.1s %(asctime)s %(name)s:%(module)s %(message)s' datefmt: '%d-%b %H:%M:%S' gramex-text: format: '%(levelname)1.1s %(asctime)s %(name)s:%(module)s %(port)s %(message)s' datefmt: '%d-%b %H:%M:%S' console: (): colorlog.ColoredFormatter format: '%(log_color)s%(levelname)-8s%(reset)s%(asctime)s %(bold_yellow)s%(name)s:%(module)s%(reset)s %(message)s' datefmt: '%d-%b %H:%M:%S' gramex-console: (): colorlog.ColoredFormatter format: '%(log_color)s%(levelname)-8s%(reset)s%(asctime)s %(bold_yellow)s%(name)s:%(module)s%(reset)s %(green)s%(port)s%(reset)s %(message)s' datefmt: '%d-%b %H:%M:%S' file: format: '%(levelname)1.1s,%(asctime)s,%(name)s:%(module)s,%(lineno)d,"%(message)s"' datefmt: '%Y-%m-%d %H:%M:%S' csv-message: format: '%(asctime)s,%(message)s' datefmt: '%Y-%m-%d %H:%M:%S' message: format: '%(message)s' datefmt: '%Y-%m-%d %H:%M:%S' eventlog: path: /home/ubuntu/.config/gramexdata/logs/events.db app: browser: false watch: true listen: port: 9987 xheaders: true max_buffer_size: 1000000000 max_header_size: 1000000000 max_body_size: 1000000000 settings: compress_response: true debug: false serve_traceback: true xsrf_cookies: true xsrf_cookie_kwargs: httponly: false cookie_secret: secret-key key_version: 2 autoescape: xhtml_escape template_path: . static_path: ./static static_url_prefix: /static/ login_url: /./auth/db autoreload: false session: cookie: sid type: json path: /home/ubuntu/.config/gramexdata/session.json flush: 5 purge: 3600 expiry: 31 httponly: true ratelimit: type: json path: /home/ubuntu/.config/gramexdata/ratelimit.json flush: 30 purge: 3600 storelocations: user: url: sqlite:////home/ubuntu/.config/gramexdata/auth.user.db table: user columns: key: type: TEXT primary_key: true value: TEXT userlog: url: sqlite:////home/ubuntu/.config/gramexdata/auth.user.db table: userlog columns: event: TEXT port: INTEGER uri: TEXT name: TEXT class: TEXT datetime: TEXT user: TEXT ip: TEXT browser: TEXT otp: url: sqlite:////home/ubuntu/.config/gramexdata/auth.recover.db table: users columns: token: type: TEXT primary_key: true user: TEXT type: TEXT expire: REAL pipeline: url: sqlite:////home/ubuntu/.config/gramexdata/pipeline.db table: runs columns: name: TEXT start: TEXT end: TEXT error: TEXT schedule: gramex_update: function: gramex.gramex_update(url='https://gramener.com/gramex-update/') startup: true minutes: 0 hours: 0 dates: '*' thread: true gramex_purge_otp: function: gramex.services._storelocations_purge() startup: true minutes: 1 hours: 0 dates: '*' thread: true gramex_migrate: function: - gramex.migrate.user_db() startup: true thread: true subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:create-user-database: function: authutil.create_user_database kwargs: url: sqlite:////home/ubuntu/.config/gramexdata/apps/guide/auth.db table: users user: user password: password salt: abc excel: /home/ubuntu/.config/gramexdata/apps/guide/auth.xlsx startup: true subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:data-setup-flags-db: function: pandas.read_csv(r'/mnt/gramener/apps/guide/formhandler/flags.csv').to_sql( 'flags', sqlalchemy.create_engine('sqlite:///formhandler/database.sqlite3'), if_exists='replace', index=False) startup: true languagetool-download-aVHAu: function: gramex.ml.languagetool_download() startup: true thread: true apps/logviewer-TbsFf: function: logviewer.summarize kwargs: db: url: sqlite:////home/ubuntu/.config/gramexdata/logs/logviewer.db custom_dims: {} session_threshold: 15 transforms: - type: derive expr: col: status op: REPLACE value: 101: 101 Switching Protocols 200: 200 OK 301: 301 Moved Permanently 302: 302 Found 304: 304 Not Modified 400: 400 Bad Request 401: 401 Unauthorized 403: 403 Forbidden 404: 404 Not Found 405: 405 Method Not Allowed 422: 422 Unprocessable Entity 500: 500 Internal Server Error 502: 502 Bad Gateway 504: 504 Gateway Timeout 599: 599 Network Timeout as: status post_transforms: - type: derive expr: col: user.id op: NOTIN value: - '-' - dev as: user.id_1 - type: derive expr: col: uri op: NOTCONTAINS value: \.js|\.css|\.ico|\.png|\.jpg|\.jpeg|\.gif|\.otf|\.woff.*|\.eot as: uri_1 startup: true minutes: 0 hours: 6 thread: true subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:make_circles: function: mlhandler.init startup: true subdirs:/mnt/gramener/apps/guide/scheduler/gramex.yaml:run-on-startup: function: logging.info(msg="Scheduled msg (on startup)") startup: true subdirs:/mnt/gramener/apps/guide/scheduler/gramex.yaml:run-every-hour: function: schedule_utils.log_time() minutes: 0 hours: '*' subdirs:/mnt/gramener/apps/guide/scheduler/gramex.yaml:run-at-specific-interval: function: schedule_utils.log_time() every: 4h 10m 30s url: default: priority: -100 pattern: /(.*) handler: FileHandler kwargs: path: . default_filename: - default.template.html - default.tmpl.html - index.html index: true sass: - '*.scss' - '*.sass' ts: - '*.ts' template: - '*.template.html' - '*.tmpl.html' headers: Cache-Control: max-age=60 node_modules/**: Cache-Control: public, max-age=315360000 assets/**: Cache-Control: public, max-age=86400 favicon.ico: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html favicon: priority: -90 pattern: /favicon.ico handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/favicon.ico headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-markdown: pattern: /./(.*) handler: FileHandler priority: -0.5 kwargs: path: /mnt/gramener/apps/guide default_filename: README.md index: true transform: '*.md': function: guide.markdown_template(content, handler) encoding: utf-8 headers: Content-Type: text/html headers: Cache-Control: public, max-age=300 Access-Control-Allow-Origin: '*' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-home: pattern: /./home handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/home.md transform: '*.md': function: guide.markdown_template(content, handler) encoding: utf-8 headers: Content-Type: text/html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-api: pattern: /./api/(.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/api/ default_filename: index.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-markdown-g1: pattern: /./g1/([a-z0-9]+) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/g1/*.md transform: '*.md': function: guide.markdown_template(content, handler) encoding: utf-8 headers: Content-Type: text/html headers: Cache-Control: public, max-age=300 Access-Control-Allow-Origin: '*' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-final-config: pattern: /./final-config handler: FunctionHandler kwargs: function: guide.config headers: Cache-Control: public, max-age=300 Access-Control-Allow-Origin: '*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-root-config: pattern: /./root.gramex.yaml handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/gramex.yaml headers: Cache-Control: public, max-age=300 Access-Control-Allow-Origin: '*' Content-Type: text/plain ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-static: pattern: /./(.*\.s?css|.*\.js|.*\.vue|.*\.ts) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/* sass: '*.scss' vue: '*.vue' ts: '*.ts' headers: Cache-Control: public, max-age=300 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html guide-source: pattern: /./(.*)\.source handler: FileHandler kwargs: path: /mnt/gramener/apps/guide headers: Content-Type: text/plain headers: Cache-Control: public, max-age=300 Access-Control-Allow-Origin: '*' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/admin/gramex.yaml:admin/schedule: pattern: /admin/schedule handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/admin/schedule.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/webshell-static-5kK6M: pattern: /admin/admin/(webshell\..*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/../admin/ ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/home-txRnl: pattern: /admin/admin/([a-z]*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/index.html template: true admin_kwargs: components: - users - schedule - alert - shell - info - config - logs auth: '' components: users: title: Users desc: Add, rename, and manage users and roles color: primary icon: far fa-user schedule: title: Schedule desc: Preview and run scheduled commands color: dark icon: far fa-clock alert: title: Alert desc: Manage alert notifications color: warning icon: far fa-envelope shell: title: Shell desc: Run Python commands within Gramex color: danger icon: fas fa-terminal info: title: Info desc: Server OS and environment information color: info icon: fas fa-info config: title: Config desc: View Gramex configuration (gramex.yaml) color: secondary icon: fas fa-wrench logs: title: Logs desc: Track usage and errors in Gramex color: success icon: fa fa-align-left ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/users-40Y32: pattern: /admin/admin/users-data handler: gramexadmin.AdminFormHandler kwargs: admin_kwargs: components: - users - schedule - alert - shell - info - config - logs auth: '' signup: email_subject: Welcome to your Gramex app! email_text: 'Hello {user}, You have been signed up with password {password}. ' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/auth-rules-PekCK: pattern: /admin/admin/auth-rules handler: gramexadmin.AdminFormHandler kwargs: rules: true admin_kwargs: components: - users - schedule - alert - shell - info - config - logs auth: '' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html app/admin2/schedule-fgQLK: pattern: /admin/admin/schedule-data handler: FunctionHandler kwargs: function: gramexadmin.schedule(handler, 'schedule') headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html app/admin2/alert-0Xkbk: pattern: /admin/admin/alert-data handler: FunctionHandler kwargs: function: gramexadmin.schedule(handler, 'alert') headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/webshell-OFu92: pattern: /admin/admin/webshell-data handler: WebSocketHandler kwargs: auth: '' on_message: function: gramexadmin.evaluate(handler, message) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/info-4vkzk: pattern: /admin/admin/info-data handler: FunctionHandler kwargs: function: gramexadmin.system_information auth: '' headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/home-static-AWJrT: pattern: /admin/admin/(.*\.css|.*\.js) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/ auth: '' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-amhdW: pattern: /admin/admin/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-lXRI6: pattern: /admin/admin/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-cr3gw: pattern: /admin/admin/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/webshell-static-sJ525: pattern: /admin/admin-kwargs/(webshell\..*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/../admin/ ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/home-OB2Fw: pattern: /admin/admin-kwargs/([a-z]*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/index.html template: true admin_kwargs: logo: https://gramener.com/uistatic/gramener.png title: Admin Page Options theme: ?dark=%2320186f&font-family-base=roboto&body-bg=%23f8f8f8 components: - info - shell - users auth: '' components: users: title: Users desc: Add, rename, and manage users and roles color: primary icon: far fa-user schedule: title: Schedule desc: Preview and run scheduled commands color: dark icon: far fa-clock alert: title: Alert desc: Manage alert notifications color: warning icon: far fa-envelope shell: title: Shell desc: Run Python commands within Gramex color: danger icon: fas fa-terminal info: title: Info desc: Server OS and environment information color: info icon: fas fa-info config: title: Config desc: View Gramex configuration (gramex.yaml) color: secondary icon: fas fa-wrench logs: title: Logs desc: Track usage and errors in Gramex color: success icon: fa fa-align-left ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/users-KE3AV: pattern: /admin/admin-kwargs/users-data handler: gramexadmin.AdminFormHandler kwargs: admin_kwargs: logo: https://gramener.com/uistatic/gramener.png title: Admin Page Options theme: ?dark=%2320186f&font-family-base=roboto&body-bg=%23f8f8f8 components: - info - shell - users auth: '' signup: email_subject: Welcome to your Gramex app! email_text: 'Hello {user}, You have been signed up with password {password}. ' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/auth-rules-3KIuY: pattern: /admin/admin-kwargs/auth-rules handler: gramexadmin.AdminFormHandler kwargs: rules: true admin_kwargs: logo: https://gramener.com/uistatic/gramener.png title: Admin Page Options theme: ?dark=%2320186f&font-family-base=roboto&body-bg=%23f8f8f8 components: - info - shell - users auth: '' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html app/admin2/schedule-c25Tw: pattern: /admin/admin-kwargs/schedule-data handler: FunctionHandler kwargs: function: gramexadmin.schedule(handler, 'schedule') headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html app/admin2/alert-4kb8f: pattern: /admin/admin-kwargs/alert-data handler: FunctionHandler kwargs: function: gramexadmin.schedule(handler, 'alert') headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/webshell-m06xx: pattern: /admin/admin-kwargs/webshell-data handler: WebSocketHandler kwargs: auth: '' on_message: function: gramexadmin.evaluate(handler, message) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/info-o4DPx: pattern: /admin/admin-kwargs/info-data handler: FunctionHandler kwargs: function: gramexadmin.system_information auth: '' headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/home-static-ExnGu: pattern: /admin/admin-kwargs/(.*\.css|.*\.js) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/ auth: '' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-cC2aO: pattern: /admin/admin-kwargs/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-WR9NK: pattern: /admin/admin-kwargs/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-HtVkX: pattern: /admin/admin-kwargs/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/webshell-static-cz3Zz: pattern: /admin/admin-user/(webshell\..*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/../admin/ ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/home-NddCx: pattern: /admin/admin-user/([a-z]*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/index.html template: true admin_kwargs: logo: https://gramener.com/uistatic/gramener.png home: /admin/ title: User Management theme: ?primary=%2320186f&dark=%2320186f&font-family-base=roboto&body-bg=%23f8f8f8 components: - users authhandler: auth/dbsimple auth: '' components: users: title: Users desc: Add, rename, and manage users and roles color: primary icon: far fa-user schedule: title: Schedule desc: Preview and run scheduled commands color: dark icon: far fa-clock alert: title: Alert desc: Manage alert notifications color: warning icon: far fa-envelope shell: title: Shell desc: Run Python commands within Gramex color: danger icon: fas fa-terminal info: title: Info desc: Server OS and environment information color: info icon: fas fa-info config: title: Config desc: View Gramex configuration (gramex.yaml) color: secondary icon: fas fa-wrench logs: title: Logs desc: Track usage and errors in Gramex color: success icon: fa fa-align-left ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/users-CwqQx: pattern: /admin/admin-user/users-data handler: gramexadmin.AdminFormHandler kwargs: url: /home/ubuntu/.config/gramexdata/apps/guide/auth.xlsx id: user auth: '' apps/admin2/auth-rules-TMEhr: pattern: /admin/admin-user/auth-rules handler: gramexadmin.AdminFormHandler kwargs: url: /mnt/gramener/apps/guide/auth/rules.csv id: - selector - pattern auth: '' app/admin2/schedule-8E2wd: pattern: /admin/admin-user/schedule-data handler: FunctionHandler kwargs: function: gramexadmin.schedule(handler, 'schedule') headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html app/admin2/alert-Merhq: pattern: /admin/admin-user/alert-data handler: FunctionHandler kwargs: function: gramexadmin.schedule(handler, 'alert') headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/webshell-47WJ8: pattern: /admin/admin-user/webshell-data handler: WebSocketHandler kwargs: auth: '' on_message: function: gramexadmin.evaluate(handler, message) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/info-HpFyQ: pattern: /admin/admin-user/info-data handler: FunctionHandler kwargs: function: gramexadmin.system_information auth: '' headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/admin2/home-static-6grV6: pattern: /admin/admin-user/(.*\.css|.*\.js) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/admin2/ auth: '' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-71ZGG: pattern: /admin/admin-user/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-VcAfb: pattern: /admin/admin-user/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-k1vIy: pattern: /admin/admin-user/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/alert/gramex.yaml:alert/sendmail: pattern: /alert/sendmail handler: FunctionHandler kwargs: function: alertapp.sendmail error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/alert/gramex.yaml:alert/alert: pattern: /alert/alert handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/alert/alert.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/logout: pattern: /auth/logout handler: LogoutHandler kwargs: log: fields: - session.id - current_user.email - request.remote_ip - request.headers.User-Agent error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/simple: pattern: /auth/simple handler: SimpleAuth kwargs: template: /mnt/gramener/apps/guide/auth/simple.html credentials: alpha: alpha beta: beta redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/ajax: pattern: /auth/ajax handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/ajax.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/google: pattern: /auth/google handler: GoogleAuth kwargs: key: 817932882244-gdr59t3mpqh5554d1bgdjuh38g6a7ahh.apps.googleusercontent.com secret: lwArXkw21KCqDPuJrel-WeQO scope: - https://www.googleapis.com/auth/contacts.readonly - https://www.googleapis.com/auth/gmail.readonly - https://www.googleapis.com/auth/calendar.readonly - https://www.googleapis.com/auth/drive.readonly - https://www.googleapis.com/auth/spreadsheets.readonly - https://www.googleapis.com/auth/cloud-translation extra_params: prompt: select_account access_type: offline log: fields: - session.id - current_user.email - request.remote_ip - request.headers.User-Agent redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/contacts: pattern: /auth/contacts handler: FunctionHandler kwargs: function: authutil.contacts headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/facebook: pattern: /auth/facebook handler: FacebookAuth kwargs: key: '163328100435225' secret: c71c7e17d5a16ce7662ec75858e9631f log: fields: - session.id - current_user.name - request.remote_ip - request.headers.User-Agent redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/twitter: pattern: /auth/twitter handler: TwitterAuth kwargs: key: 5Ab9olPCo8OA8S1R2BY29FAxB secret: BgRPCvxaQsYU3QivHvrthwQA1vwDr22UQDLuUK8egqvgUid1md log: fields: - session.id - current_user.username - request.remote_ip - request.headers.User-Agent redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/ldap: pattern: /auth/ldap handler: LDAPAuth kwargs: template: /mnt/gramener/apps/guide/auth/ldap.html host: ipa.demo1.freeipa.org use_ssl: true user: uid={user},cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org password: '{password}' log: fields: - session.id - current_user.dn - request.remote_ip - request.headers.User-Agent action: function: ensure_single_session redirect: query: next header: Referer url: . external: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/ldap-bind: pattern: /auth/ldap-bind handler: LDAPAuth kwargs: template: /mnt/gramener/apps/guide/auth/ldap.html host: ipa.demo1.freeipa.org use_ssl: true bind: user: uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org password: Secret123 search: base: dc=demo1,dc=freeipa,dc=org filter: (mail={user}) password: '{password}' log: fields: - session.id - current_user.dn - request.remote_ip - request.headers.User-Agent action: function: ensure_single_session redirect: query: next header: Referer url: . external: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/ldap2: pattern: /auth/ldap2 handler: LDAPAuth kwargs: template: /mnt/gramener/apps/guide/auth/ldap.html host: ldap.forumsys.com use_ssl: false user: uid={user},dc=example,dc=com password: '{password}' redirect: query: next header: Referer url: . external: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/dbsimple: pattern: /auth/dbsimple handler: DBAuth kwargs: url: /home/ubuntu/.config/gramexdata/apps/guide/auth.xlsx user: column: user arg: user password: column: password function: passlib.hash.sha256_crypt.encrypt(content, salt="abc") arg: password min_length: 0 min_special_chars: 0 min_numbers: 0 min_uppercase: 0 min_lowercase: 0 rules: url: /mnt/gramener/apps/guide/auth/rules.csv redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/db: pattern: /auth/db handler: DBAuth kwargs: url: sqlite:////home/ubuntu/.config/gramexdata/apps/guide/auth.db table: users template: /mnt/gramener/apps/guide/auth/db.html user: column: user arg: user password: column: password arg: password function: passlib.hash.sha256_crypt.encrypt(content, salt="abc") min_length: 0 min_special_chars: 0 min_numbers: 0 min_uppercase: 0 min_lowercase: 0 forgot: email_from: gramex-guide-auth key: forgot arg: email minutes_to_expiry: 15 email_column: email email_subject: Gramex forgot password email_as: Gramex Guide email_text: 'This is an email from Gramex guide. You clicked on the forgot password like for user {user}. Visit this link to reset the password: {reset_url} ' email_body: 'This is an email from Gramex guide. You clicked on the forgot password like for user {user}. Visit this link to reset the password: {reset_url} ' template: /mnt/gramener/anaconda3/lib/python3.7/site-packages/gramexenterprise/handlers/forgot.template.html size: 6 otp_reset: false signup: true redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/user: pattern: /auth/user handler: FunctionHandler kwargs: function: json.dumps(handler.session['user']) kwargs: indent: 4 headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/session: pattern: /auth/session handler: FunctionHandler kwargs: function: authutil.store_value headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/must-login: pattern: /auth/must-login handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/secret.html auth: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/dotcom: pattern: /auth/dotcom handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/secret.html auth: condition: function: handler.current_user.email.endswith('.com') ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/dotorg: pattern: /auth/dotorg handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/secret.html auth: condition: function: handler.current_user.email.endswith('.org') ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/en-male: pattern: /auth/en-male handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/secret.html auth: membership: gender: male locale: - en - es ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/use-simple: pattern: /auth/use-simple handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/secret.html auth: login_url: ./simple ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/expiry: pattern: /auth/expiry handler: SimpleAuth kwargs: session_expiry: 0.0003 credentials: alpha: alpha template: /mnt/gramener/apps/guide/auth/expiry.html redirect: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/inactive: pattern: /auth/inactive handler: SimpleAuth kwargs: session_inactive: 3.0e-05 credentials: alpha: alpha template: /mnt/gramener/apps/guide/auth/inactive.html redirect: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/customexpiry: pattern: /auth/customexpiry handler: SimpleAuth kwargs: session_expiry: default: 1 key: remember values: sec: 0.000115 min: 0.0007 day: 1 week: 7 month: 31 session: false 'on': 31 credentials: alpha: alpha beta: beta template: /mnt/gramener/apps/guide/auth/customexpiry.html redirect: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/otp: pattern: /auth/otp handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/otp.html template: true headers: Cache-Control: no-cache ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/apikey: pattern: /auth/apikey handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/apikey.html template: true headers: Cache-Control: no-cache ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/methods: pattern: /auth/methods handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/methods.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:public-read: pattern: /auth/public-read handler: FunctionHandler kwargs: function: f'Method = ${handler.request.method}, User = ${handler.current_user}' auth: methods: - POST - PUT - DELETE xsrf_cookies: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/unauthorized-template: pattern: /auth/unauthorized-template handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/secret.html auth: membership: donkey: king template: /mnt/gramener/apps/guide/auth/403-template.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/gitlab: pattern: /auth/gitlab handler: OAuth2 kwargs: client_id: cc177f42cf432a7e961c317bd9e784b08d2bc27a2028b0487ee53732ea3a4ddf client_secret: 00186a6c4c8bb77b3f961b158fb5e4b49738b7efdfbe61b8d19285d66149f8b9 authorize: url: https://code.gramener.com/oauth/authorize scope: [] extra_params: {} response_type: code access_token: url: https://code.gramener.com/oauth/token body: grant_type: authorization_code redirect_uri: '{redirect_uri}' code: '{code}' client_id: '{client_id}' client_secret: '{client_secret}' headers: User-Agent: Gramex/1.94.1 session_key: access_token user_info: url: https://code.gramener.com/api/v4/user headers: Authorization: Bearer {access_token} User-Agent: Gramex/1.94.1 user_id: id redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/github: pattern: /auth/github handler: OAuth2 kwargs: client_id: a4ffb7fd2c4b05e04457 client_secret: 198a4ec063bac3dfe01136368184930f8aa93a4a authorize: url: https://github.com/login/oauth/authorize scope: - repo - gist - user extra_params: {} response_type: code access_token: url: https://github.com/login/oauth/access_token headers: User-Agent: Gramex/1.94.1 body: client_id: '{client_id}' client_secret: '{client_secret}' code: '{code}' redirect_uri: '{redirect_uri}' session_key: access_token user_info: url: https://api.github.com/user headers: Authorization: token {access_token} User-Agent: Gramex/1.94.1 redirect: query: next header: Referer url: . user_id: id error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/googleoauth2: pattern: /auth/googleoauth2 handler: OAuth2 kwargs: client_id: 817932882244-gdr59t3mpqh5554d1bgdjuh38g6a7ahh.apps.googleusercontent.com client_secret: lwArXkw21KCqDPuJrel-WeQO authorize: url: https://accounts.google.com/o/oauth2/auth scope: - profile - email extra_params: {} response_type: code access_token: url: https://accounts.google.com/o/oauth2/token body: grant_type: authorization_code redirect_uri: '{redirect_uri}' code: '{code}' client_id: '{client_id}' client_secret: '{client_secret}' headers: User-Agent: Gramex/1.94.1 session_key: access_token user_info: url: https://www.googleapis.com/oauth2/v1/userinfo headers: Authorization: Bearer {access_token} User-Agent: Gramex/1.94.1 user_id: id error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/lookup-attributes: pattern: /auth/lookup-attributes handler: SimpleAuth kwargs: template: /mnt/gramener/apps/guide/auth/simple.html credentials: alpha: alpha beta: beta lookup: url: /mnt/gramener/apps/guide/auth/lookup.xlsx id: user redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/rules: pattern: /auth/attr-rules handler: SimpleAuth kwargs: template: /mnt/gramener/apps/guide/auth/simple.rules.html credentials: alpha: password: alpha email: jane.doe@gramener.com role: admin location: BLR beta: password: beta email: john.doe@gmail.com role: intern location: MUM rules: url: /mnt/gramener/apps/guide/auth/rules.csv redirect: url: /auth/attr-rules error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/rules-csv: pattern: /auth/attr-rules-data handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/auth/rules.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/recaptcha: pattern: /auth/recaptcha handler: SimpleAuth kwargs: template: /mnt/gramener/apps/guide/auth/simple.html recaptcha: key: 6Lf4u44UAAAAAFUEab2QNmEpbdFswIsB887aZwmQ secret: 6Lf4u44UAAAAAEgK-Qt5LRZKnzFDZkFSwztC1LWM action: login credentials: alpha: alpha beta: beta redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/sms: pattern: /auth/sms handler: SMSAuth kwargs: service: exotel message: This is a test message being sent using Exotel with a (%s) and (00000). If this is being abused, report to 08088919888 redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/email: pattern: /auth/email handler: EmailAuth kwargs: service: gramex-guide-auth subject: OTP for Gramex Guide body: 'The OTP for {user} is {password} Visit {link} ' html: '

The OTP for {user} is {password}.

Click here to log in

' redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/emailtemplate: pattern: /auth/emailtemplate handler: EmailAuth kwargs: service: gramex-guide-auth subject: OTP for Gramex Guide bodyfile: auth/emailauth.txt htmlfile: auth/emailauth.html template: auth/emailauth.template.html redirect: query: next header: Referer url: . error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/delay: pattern: /auth/delay handler: SimpleAuth kwargs: template: /mnt/gramener/apps/guide/auth/simple.html credentials: alpha: alpha beta: beta redirect: query: next header: Referer url: . delay: 5 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/multi: pattern: /auth/multi handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/multi.html template: true headers: Cache-Control: no-cache ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/multi-google: pattern: /auth/multi-google handler: GoogleAuth kwargs: key: 817932882244-gdr59t3mpqh5554d1bgdjuh38g6a7ahh.apps.googleusercontent.com secret: lwArXkw21KCqDPuJrel-WeQO scope: - https://www.googleapis.com/auth/contacts.readonly - https://www.googleapis.com/auth/gmail.readonly - https://www.googleapis.com/auth/calendar.readonly - https://www.googleapis.com/auth/drive.readonly - https://www.googleapis.com/auth/spreadsheets.readonly - https://www.googleapis.com/auth/cloud-translation extra_params: prompt: select_account access_type: offline log: fields: - session.id - current_user.email - request.remote_ip - request.headers.User-Agent redirect: query: next header: Referer url: . user_key: google_user error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/multi-simple: pattern: /auth/multi-simple handler: SimpleAuth kwargs: template: /mnt/gramener/apps/guide/auth/simple.html credentials: alpha: alpha beta: beta redirect: query: next header: Referer url: . user_key: simple_user error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/multi-unlink: pattern: /auth/multi-unlink handler: FunctionHandler kwargs: function: '{key: handler.session.pop(key, None) for key in ["google_user", "simple_user"]}' redirect: url: ./multi error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/apps:/mnt/gramener/apps/guide/auth/gmail/gramex.yaml:auth-gmail/google : pattern: /auth/gmail/google handler: GoogleAuth kwargs: key: 817932882244-gdr59t3mpqh5554d1bgdjuh38g6a7ahh.apps.googleusercontent.com secret: lwArXkw21KCqDPuJrel-WeQO redirect: query: next url: /auth/gmail/ error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/apps:/mnt/gramener/apps/guide/auth/gmail/gramex.yaml:auth-gmail/logout : pattern: /auth/gmail/logout handler: LogoutHandler kwargs: redirect: query: next url: /auth/gmail/ error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/auth/gramex.yaml:auth/apps:/mnt/gramener/apps/guide/auth/gmail/gramex.yaml:auth-gmail/: pattern: /auth/gmail/ handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/auth/gmail/index.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/cache/gramex.yaml:random: pattern: /cache/random handler: FunctionHandler kwargs: function: random.choice(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/cache/gramex.yaml:random-cached: pattern: /cache/random-cached handler: FunctionHandler kwargs: function: random.choice(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: true subdirs:/mnt/gramener/apps/guide/cache/gramex.yaml:cache-full-url: pattern: /cache/cache-full-url handler: FunctionHandler kwargs: function: random.choice(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: key: request.uri subdirs:/mnt/gramener/apps/guide/cache/gramex.yaml:cache-only-path: pattern: /cache/cache-only-path handler: FunctionHandler kwargs: function: random.choice(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: key: request.path subdirs:/mnt/gramener/apps/guide/cache/gramex.yaml:cache-expiry: pattern: /cache/cache-expiry handler: FunctionHandler kwargs: function: random.choice(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: expiry: duration: 5 subdirs:/mnt/gramener/apps/guide/capturehandler/gramex.yaml:capturehandler-capture: pattern: /capturehandler/capture handler: CaptureHandler kwargs: engine: chrome port: 9900 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/chart/gramex.yaml:gallery-data: pattern: /chart/data/(.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/chart/data/ headers: Access-Control-Allow-Origin: '*' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/chart/gramex.yaml:towns-data: pattern: /chart/towns handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/chart/data/towns.xlsx headers: Access-Control-Allow-Origin: '*' formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-FEWzm: pattern: /chart/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-2uTw2: pattern: /chart/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-2nFnp: pattern: /chart/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/chatgpthandler/gramex.yaml:chatgpthandler/chat: pattern: /chatgpthandler/chat handler: ChatGPTHandler kwargs: key: function: handler.get_arg('key', '') model: function: handler.get_arg('model', 'gpt-3.5-turbo') stream: function: '''stream'' in handler.args' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/comichandler/gramex.yaml:comichandler/comics: pattern: /comichandler/comics handler: ComicHandler kwargs: error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/config/gramex.yaml:config/hello: pattern: /config/hello handler: hello.Hello kwargs: error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/config/gramex.yaml:config/dummy: pattern: /config/(dummy.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/config/handler error: 404: path: /mnt/gramener/apps/guide/config/error-page.html 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' subdirs:/mnt/gramener/apps/guide/config/gramex.yaml:config/files: priority: 1 pattern: /config/(error.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/config/handler error: 404: path: /mnt/gramener/apps/guide/config/error-page.html 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' subdirs:/mnt/gramener/apps/guide/config/gramex.yaml:config/json-error: priority: 1 pattern: /config/json-error handler: FunctionHandler kwargs: function: str(1/0) error: 500: function: "json.dumps({\n \"code\": status_code,\n \"message\": str(kwargs['exc_info'][1]),\n\ \ \"traceback\": ''.join(traceback.format_tb(kwargs['exc_info'][2])),\n\ }, indent=2)\n" headers: Content-Type: application/json path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html subdirs:/mnt/gramener/apps/guide/deploy/gramex.yaml:deploy-url: pattern: /deploy/url/(.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/deploy/template.html transform: template.html: function: template(content, APP_ROOT=handler.request.headers.get('X-Gramex-Root', '/') + r'.') ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/deploy/gramex.yaml:gramex-config-file: pattern: /deploy/config handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/gramex.yaml ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/deploy/gramex.yaml:deploy-secrets: pattern: /deploy/secrets handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/deploy/secrets.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/deploy/gramex.yaml:deploy-cors: pattern: /deploy/cors handler: FunctionHandler kwargs: function: handler.session cors: true xsrf_cookies: false headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/drivehandler/gramex.yaml:drivehandler/drivedemo: pattern: /drivehandler/drivedemo handler: DriveHandler kwargs: path: /home/ubuntu/.config/gramexdata/apps/guide/drive-data/ tags: - desc user_fields: - id xsrf_cookies: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/drivehandler/gramex.yaml:drivehandler/drive: pattern: /drivehandler/drive handler: DriveHandler kwargs: path: /home/ubuntu/.config/gramexdata/apps/guide/drive-data/ tags: - desc user_fields: - id xsrf_cookies: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/drivehandler/gramex.yaml:drivehandler/upload: pattern: /drivehandler/upload handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/drivehandler/upload.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/drivehandler/gramex.yaml:drivehandler/data: pattern: /drivehandler/data/(.*) handler: FormHandler kwargs: url: /home/ubuntu/.config/gramexdata/apps/guide/drive-data/{_0} formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/filemanager/home-wXqEd: pattern: /drivehandler/filemanager/ handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/filemanager/index.html template: true filemanager_kwargs: '' auth: '' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/filemanager/help-kwHEA: pattern: /drivehandler/filemanager/help handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/filemanager/index.html template: true auth: '' ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/filemanager/home-static-bOPuN: pattern: /drivehandler/filemanager/(.+) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/filemanager/ ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-xb8g9: pattern: /drivehandler/filemanager/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-hXtKd: pattern: /drivehandler/filemanager/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-bvqgv: pattern: /drivehandler/filemanager/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/email/gramex.yaml:email/sendmail: pattern: /email/sendmail handler: FunctionHandler kwargs: function: emailapp.sendmail error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/email/gramex.yaml:email/mail: pattern: /email/mail handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/email/mail.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/facebookgraphhandler/gramex.yaml:facebookgraphhandler/facebook: pattern: /facebookgraphhandler/facebook/(.*) handler: FacebookGraphHandler kwargs: key: '163328100435225' secret: c71c7e17d5a16ce7662ec75858e9631f redirect: query: next header: Referer url: /facebookgraphhandler/ error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/facebookgraphhandler/gramex.yaml:facebookgraphhandler/persist: pattern: /facebookgraphhandler/persist/(.*) handler: FacebookGraphHandler kwargs: key: '163328100435225' secret: c71c7e17d5a16ce7662ec75858e9631f access_token: persist redirect: query: next header: Referer url: /facebookgraphhandler/ error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: duration: 300 subdirs:/mnt/gramener/apps/guide/filehandler/gramex.yaml:filehandler-xsrf: pattern: /filehandler/xsrf handler: FunctionHandler kwargs: function: handler.xsrf_token.decode('utf-8') error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/filehandler/gramex.yaml:filehandler-form: pattern: /filehandler/form.html handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/filehandler/form.html template: true error: 403: path: /mnt/gramener/apps/guide/filehandler/403.html 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' subdirs:/mnt/gramener/apps/guide/filehandler/gramex.yaml:filehandler-template: pattern: /filehandler/template handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/filehandler/template.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/filehandler/gramex.yaml:yaml-extensions: pattern: /filehandler/yaml/(.*) handler: FileHandler kwargs: path: filehandler/*.yaml ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/filterhandler/gramex.yaml:filterhandler-flags: pattern: /filterhandler/flags handler: FilterHandler kwargs: url: /mnt/gramener/apps/guide/filterhandler/../formhandler/flags.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-flags: pattern: /formhandler/flags handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv formats: text: format: template template: /mnt/gramener/apps/guide/formhandler/text-template.txt headers: Content-Type: text/plain pptx-table: format: pptx source: /mnt/gramener/apps/guide/formhandler/input.pptx change-table: Table: table: data: data['data'] headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation cors-json: format: json headers: Content-Type: application/json Access-Control-Allow-Origin: '*' json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-continent: pattern: /formhandler/continent handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv function: data.groupby('Continent').sum().reset_index() formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-totals: pattern: /formhandler/totals handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv modify: data.sum(numeric_only=True).to_frame().T formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-replace: pattern: /formhandler/replace handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv prepare: args.update(Cross=args.pop('c', [])) formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-db: pattern: /formhandler/db handler: FormHandler kwargs: url: sqlite:////mnt/gramener/apps/guide/formhandler/database.sqlite3 table: flags formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-query: pattern: /formhandler/query handler: FormHandler kwargs: url: sqlite:////mnt/gramener/apps/guide/formhandler/database.sqlite3 table: flags query: SELECT Continent, COUNT(*) AS num, SUM(c1) FROM flags GROUP BY Continent formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-queryfile: pattern: /formhandler/queryfile handler: FormHandler kwargs: url: sqlite:////mnt/gramener/apps/guide/formhandler/database.sqlite3 table: flags queryfile: /mnt/gramener/apps/guide/formhandler/continents.sql formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-multidata: pattern: /formhandler/multidata handler: FormHandler kwargs: continents: url: /mnt/gramener/apps/guide/formhandler/flags.csv default: _limit: 10000 transform: !!python/name:None.subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-multidata.continents.transform '' stripes: url: /mnt/gramener/apps/guide/formhandler/flags.csv default: _limit: 10000 transform: !!python/name:None.subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-multidata.stripes.transform '' formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-modify-multi: pattern: /formhandler/modify-multi handler: FormHandler kwargs: symbols: url: sqlite:////mnt/gramener/apps/guide/formhandler/database.sqlite3 table: flags query: SELECT Continent, COUNT(DISTINCT Symbols) AS dsymbols FROM flags GROUP BY Continent modify: !!python/name:None.subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-modify-multi.symbols.modify '' default: _limit: 10000 colors: url: /mnt/gramener/apps/guide/formhandler/flags.csv default: _limit: 10000 transform: !!python/name:None.subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-modify-multi.colors.transform '' modify: data['colors'].merge(data['symbols'], on='Continent') formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-chart: pattern: /formhandler/chart handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv function: data.groupby('Continent').sum().reset_index() formats: barchart: format: sns chart: barplot ext: png dpi: 48 width: 400 height: 300 x: Continent y: c1 headers: Content-Type: image/png barchart-svg: format: sns chart: barplot ext: svg dpi: 48 width: 400 height: 300 x: Continent y: c1 headers: Content-Type: image/svg+xml barchart-custom: format: sns chart: barplot ext: png dpi: 48 width: 300 height: 200 x: '{xcol}' y: '{ycol}' headers: Content-Type: image/png barchart-custom-size: format: sns chart: barplot ext: png x: '{xcol}' y: '{ycol}' width: '{width}' height: 200 headers: Content-Type: image/png json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: expiry: duration: 3600 subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-categorical: pattern: /formhandler/categorical handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv default: _format: custom _limit: 10000 formats: custom: format: sns chart: '{chart}' ext: png x: '{xcol}' y: '{ycol}' dpi: 72 width: '{width}' height: '{height}' headers: Content-Type: image/png facet: format: sns chart: '{chart}' ext: png x: '{xcol}' y: '{ycol}' hue: '{hue}' dpi: 72 width: '{width}' height: '{height}' headers: Content-Type: image/png json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: expiry: duration: 3600 subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-numerical: pattern: /formhandler/numerical handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/flags.csv function: data.select_dtypes(include=[numpy.number]) formats: matrix: format: sns chart: '{chart}' ext: png dpi: 72 width: '{width}' height: '{height}' headers: Content-Type: image/png json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: expiry: duration: 3600 subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-dir: pattern: /formhandler/dir handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/formhandler/ formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/formhandler/gramex.yaml:formhandler-schema: pattern: /formhandler/schema handler: FormHandler kwargs: url: sqlite:////mnt/gramener/apps/guide/formhandler/database.sqlite3 table: profile id: id columns: user: TEXT password: VARCHAR(40) age: type: INTEGER nullable: true default: 0 id: type: INTEGER primary_key: true autoincrement: true formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/function/gramex.yaml:random-function: pattern: /function/random handler: FunctionHandler kwargs: function: - random.seed(0) - random.randint(0, 100) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/function/gramex.yaml:random-sum: pattern: /function/randomsum handler: FunctionHandler kwargs: function: - name: x function: random.randint(0, 100) - name: y function: random.randint(0, 100) - x + y error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:total: pattern: /functionhandler/total handler: FunctionHandler kwargs: function: calculations.total(100, 200) headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:add: pattern: /functionhandler/add handler: FunctionHandler kwargs: function: calculations.add headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:slow: pattern: /functionhandler/slow handler: FunctionHandler kwargs: function: calculations.slow headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:fetch: pattern: /functionhandler/fetch handler: FunctionHandler kwargs: function: calculations.fetch headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:path: pattern: /functionhandler/path/(.*?)/(.*?) handler: FunctionHandler kwargs: function: handler.path_args headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:combinations: pattern: /functionhandler/combinations handler: FunctionHandler kwargs: function: calculations.combinations headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/functionhandler/gramex.yaml:multiply: pattern: /functionhandler/multiply handler: FunctionHandler kwargs: function: calculations.multiply headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/groupmeans/gramex.yaml:groupmeans-nas: pattern: /groupmeans/nas handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/groupmeans/nas.csv function: guide_groupmeans.autolyse_add(data) modify: data.round(2) default: _limit: 10000000000 formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/groupmeans/gramex.yaml:groupmeans-nas-groupmeans: pattern: /groupmeans/nas-groupmeans handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/groupmeans/nas.csv function: guide_groupmeans.autolyse_add(data) modify: guide_groupmeans.autolyse(data, handler) default: _limit: 10000000000 formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: false subdirs:/mnt/gramener/apps/guide/groupmeans/gramex.yaml:groupmeans-custom-data: pattern: /groupmeans/custom-data handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/groupmeans/uploaded-files/data.csv default: _limit: 10000000000 formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/groupmeans/gramex.yaml:groupmeans-custom-data-grouped: pattern: /groupmeans/custom-data-groupmeans handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/groupmeans/uploaded-files/data.csv modify: guide_groupmeans.autolyse(data, handler) default: _limit: 10000000000 formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: false subdirs:/mnt/gramener/apps/guide/groupmeans/gramex.yaml:groupmeans-uploadhandler: pattern: /groupmeans/upload handler: UploadHandler kwargs: path: /mnt/gramener/apps/guide/groupmeans/uploaded-files/ if_exists: overwrite methods: post error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/groupmeans/gramex.yaml:groupmeans-user-data: pattern: /groupmeans/custom-explore handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/groupmeans/custom.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/handlers/gramex.yaml:handler/custom: pattern: /handlers/custom handler: handlerutil.CustomHandler kwargs: error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/handlers/gramex.yaml:handler/setup: pattern: /handlers/setup handler: handlerutil.SetupHandler kwargs: name: ABC error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/jsonhandler/gramex.yaml:jsonhandler-data: pattern: /jsonhandler/data/(.*) handler: JSONHandler kwargs: data: y: a: 1 b: 2 z: - 1 - 2 - 3 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/jsonhandler/gramex.yaml:jsonhandler-update2: pattern: /jsonhandler/data2/(.*) handler: JSONHandler kwargs: data: y: a: 1 b: 2 z: - 1 - 2 - 3 xsrf_cookies: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html languagetool-0R8ua: pattern: /languagetool/languagetool/ handler: FunctionHandler kwargs: function: gramex.ml.languagetool headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/logging/gramex.yaml:logging/log: pattern: /logging/log handler: FunctionHandler kwargs: function: gramex.log(handler, 'gramexguide', event='handler') error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/logging/gramex.yaml:logging/logview: pattern: /logging/view handler: FormHandler kwargs: url: elasticsearch+http://localhost:9200 table: gramexguide formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/logviewer/layout-r9IpZ: pattern: /logviewer/log/ handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/logviewer/index.html template: true headers: Cache-Control: max-age=3600 path_ui: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/logviewer/config.yaml path_render: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/logviewer/render.js ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/logviewer/static-q8W5C: pattern: /logviewer/log/(.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/logviewer default_filename: index.html headers: Cache-Control: max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/logviewer/query-VLhxa: pattern: /logviewer/log/query/(?P\w+)/(?P[\w-]+)/ handler: FormHandler kwargs: execution_options: sqlite_raw_colnames: true queryfunction: logviewer.query(handler, args) headers: Cache-Control: max-age=18000 kwargs: queries: filterstatus: SELECT DISTINCT status FROM {table} {where} ORDER BY status filterusers: SELECT DISTINCT "user.id" FROM {table} WHERE "user.id_1" == 1 {where} ORDER BY "user.id" filteruri: SELECT uri, SUM(duration_count) AS views FROM {table} WHERE uri_1 == 1 {where} GROUP BY uri ORDER BY views DESC LIMIT 100 filterip: SELECT DISTINCT ip FROM {table} {where} ORDER BY ip kpi-pageviews: SELECT SUM(duration_count) AS value FROM {table} WHERE uri_1 == 1 {where} kpi-sessions: SELECT SUM(new_session_sum) AS value FROM {table} WHERE "user.id_1" == 1 {where} kpi-users: SELECT COUNT(DISTINCT "user.id") AS value FROM {table} WHERE "user.id_1" == 1 {where} kpi-avgtimespent: SELECT SUM(session_time_sum)/SUM(new_session_sum) AS value FROM {table} WHERE "user.id_1" == 1 {where} kpi-urls: SELECT COUNT(DISTINCT uri) AS value FROM {table} WHERE uri_1 == 1 {where} kpi-avgloadtime: SELECT SUM(duration_sum)/SUM(duration_count) AS value FROM {table} {where} toptenusers: SELECT "user.id", SUM(duration_count) AS views FROM {table} WHERE "user.id_1" == 1 {where} GROUP BY "user.id" ORDER BY views DESC LIMIT 10 toptenip: SELECT ip, SUM(duration_count) AS requests FROM {table} {where} GROUP BY ip ORDER BY requests DESC LIMIT 10 toptenstatus: SELECT status, SUM(duration_count) AS requests FROM {table} {where} GROUP BY status ORDER BY requests DESC LIMIT 10 toptenuri: SELECT uri, SUM(duration_count) AS views FROM {table} WHERE uri_1 == 1 {where} GROUP BY uri ORDER BY views DESC LIMIT 10 pageviewstrend: SELECT time, SUM(duration_count) AS pageviews FROM {table} WHERE uri_1 == 1 {where} GROUP BY time sessionstrend: SELECT time, SUM(new_session_sum) AS sessions FROM {table} WHERE "user.id_1" == 1 {where} GROUP BY time loadtimetrend: SELECT time, SUM(duration_sum)/SUM(duration_count) AS loadtime FROM {table} {where} GROUP BY time loadtimerequeststrend: SELECT time, SUM(duration_sum)/SUM(duration_count) AS loadtime, SUM(duration_count) AS requests FROM {table} {where} GROUP BY time url: sqlite:////home/ubuntu/.config/gramexdata/logs/logviewer.db formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/logviewer/capture-mr2tf: pattern: /logviewer/log/capture handler: CaptureHandler kwargs: engine: chrome timeout: 60 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-BkH77: pattern: /logviewer/log/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-UAFP2: pattern: /logviewer/log/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-cRHeH: pattern: /logviewer/log/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mapviewer/gramex.yaml:guide/mapviewer: pattern: /mapviewer/ handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/mapviewer/index.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/messagehandler/gramex.yaml:messagehandler/comments: pattern: /messagehandler/messages handler: MessageHandler kwargs: url: sqlite:////mnt/gramener/apps/guide/messagehandler/messages.db table: messages columns: scope: TEXT body: TEXT length: INTEGER to: TEXT id: primary_key: true type: text user: text timestamp: text alert: service: gramex-guide-messages to: '{{ to }}' subject: 'Message: {{ body }}' html: '{% import pandas as pd %} {% import time %}

Message from {{ user }} at {{ pd.to_datetime(time.time() * 1E9).strftime(''%d %b %Y %H:%M'') }}.

{{ body }}

' prepare: msg.setdefault('length', len(msg.get('body', ''))) modify: json.dump(msg, open(r"/mnt/gramener/apps/guide/messagehandler/last-message.log", "w")) message_default: POST: id: base64.urlsafe_b64encode(uuid.uuid4().bytes).strip(b"=").decode('utf-8') user: handler.current_user.get('id', None) if handler.current_user else None timestamp: datetime.datetime.utcnow().isoformat() error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/model: pattern: /mlhandler/model handler: MLHandler kwargs: model: path: /mnt/gramener/apps/guide/mlhandler/model.pkl class: LogisticRegression target_col: Survived exclude: - PassengerId - Ticket - Cabin - Name cats: - Embarked - SibSp - Parch - Pclass - Sex data: url: /mnt/gramener/apps/guide/mlhandler/titanic.csv xsrf_cookies: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/inflation: pattern: /mlhandler/infl handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/mlhandler/inflation.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/titanic: pattern: /mlhandler/titanic handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/mlhandler/titanic.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/circles: pattern: /mlhandler/circles handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/mlhandler/circles.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/single: pattern: /mlhandler/try/(.*) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/mlhandler/try.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/basiccircles: pattern: /mlhandler/circlebasic handler: MLHandler kwargs: data: url: /mnt/gramener/apps/guide/mlhandler/circles.csv xsrf_cookies: false model: class: LogisticRegression target_col: y path: /mnt/gramener/apps/guide/mlhandler/basic.pkl config_dir: /mnt/gramener/apps/guide/mlhandler/circlebasic error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/mlhandler/gramex.yaml:mlhandler/transformedcircles: pattern: /mlhandler/circlexform handler: MLHandler kwargs: xsrf_cookies: false data: url: /mnt/gramener/apps/guide/mlhandler/circles.csv transform: !!python/name:None.mlhandler.transform '' model: class: LogisticRegression target_col: y path: /mnt/gramener/apps/guide/mlhandler/transformed.pkl config_dir: /mnt/gramener/apps/guide/mlhandler/circlexform error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/modelhandler/gramex.yaml:modelhandler-iris: pattern: /modelhandler/model/(.*)/(.*) handler: ModelHandler kwargs: path: /mnt/gramener/apps/guide/modelhandler/ xsrf_cookies: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/node/gramex.yaml:node/total: pattern: /node/total handler: FunctionHandler kwargs: function: nodeapp.total headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/node/gramex.yaml:node/inline_styles: pattern: /node/inline_styles handler: FunctionHandler kwargs: function: nodeapp.inline_styles error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/openapihandler/gramex.yaml:compare: pattern: /openapihandler/compare handler: FunctionHandler kwargs: function: openapicalc.compare methods: GET openapi: summary: List Comparison FunctionHandler error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/openapihandler/gramex.yaml:flagdata: pattern: /openapihandler/flagdata handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/openapihandler/../formhandler/flags.csv columns: - Name - Continent - Symbols - Shapes - Stripes formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/openapihandler/gramex.yaml:openapi: pattern: /openapihandler/docs handler: OpenAPIHandler kwargs: info: title: Gramex Microservices description: '[Gramex](https://gramener.com/gramex/) OpenAPIHandler ' version: 0.1.2 servers: - url: .. description: Gramex OpenAPIHandler demo urls: - compare - flagdata error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/add-position/gramex.yaml:pptxhandler/add-position : pattern: /pptxhandler/add-position/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/add-position/template.pptx rules: - Spring: add-width: f'4.46 cm' Referral: add-top: f'1.94 cm' add-width: f'0.86 cm' Collection: add-top: f'{1.94 * 2} cm' add-width: f'3.96 cm' Discount: add-top: f'{1.94 * 3} cm' add-width: f'2.28 cm' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/albus-dumbledore-screen-time/gramex.yaml:pptxhandler/albus-dumbledore : pattern: /pptxhandler/albus-dumbledore-screen-time/output.pptx handler: PPTXHandler kwargs: version: 2 source: template.pptx data: url: screen-time.xlsx rules: - copy-slide: data.groupby('Movie', sort=False) transition: type: f'morph' duration: 1 Title: text: copy.key Name: clone-shape: copy.val add-top: 1.2 * clone.pos text: clone.val['Character'] name: f"!!{clone.val['Character']} name" Bar: clone-shape: copy.val add-top: 1.2 * clone.pos name: f"!!{clone.val['Character']} bar" width: 5 * clone.val['Minutes'] / clone.val['Max Minutes'] text: f"{clone.val['Minutes']:.0f} min" fill: '''ACCENT_2'' if clone.val[''Character''] == ''Albus Dumbledore'' else ''ACCENT_4''' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/bar-chart-race/gramex.yaml:pptxhandler/morph : pattern: /pptxhandler/bar-chart-race/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/bar-chart-race/template.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/bar-chart-race/sales.csv transform: data.set_index('month') max_visitors: function: sales.values.max() rules: - copy-slide: sales transition: type: f'morph' duration: 1 '!!Visitors Bar': width: (copy.val['visitors'] / max_visitors) * 3 '!!Leads Bar': width: (copy.val['leads'] / max_visitors) * 3 '!!Cart Bar': width: (copy.val['cart'] / max_visitors) * 3 '!!Visitors Value': text: copy.val['visitors'] '!!Leads Value': text: copy.val['leads'] '!!Cart Value': text: copy.val['cart'] Month: text: copy.key error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/certificate/gramex.yaml:pptxhandler/certificate : pattern: /pptxhandler/certificate/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/certificate/template.pptx data: url: /mnt/gramener/apps/guide/pptxhandler/certificate/people.csv rules: - copy-slide: data Name: text: copy.val.Name Course: text: copy.val.Course Date: text: copy.val.Date error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/chart/gramex.yaml:pptxhandler/chart : pattern: /pptxhandler/chart/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/chart/template.pptx data: url: /mnt/gramener/apps/guide/pptxhandler/chart/social-media-platform.csv rules: - Column Chart: chart: data: data.set_index('Platform') error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/choropleth/gramex.yaml:pptxhandler/choropleth : pattern: /pptxhandler/choropleth/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/choropleth/template.pptx data: url: /mnt/gramener/apps/guide/pptxhandler/choropleth/us-president-election-margin.csv rules: - copy-slide: data.groupby('year') Year: text: copy.key data: margins: copy.val.set_index('state') color: "{\n 'democrat': gramex.scale.color(domain=[-20, 50], range='Blues'),\n\ \ 'republican': gramex.scale.color(domain=[-20, 50], range='Reds'),\n\ \ 'democratic-farmer-labor': gramex.scale.color(domain=[-20, 50], range='Purples'),\n\ }\n" ??: fill: color[margins['party'][shape.name]](margins['margin'][shape.name]) text: f'

{shape.name}

{margins["margin"][shape.name]}%

' Dem-0: fill: color["democrat"](0) Rep-0: fill: color["republican"](0) Dem-10: fill: color["democrat"](10) Rep-10: fill: color["republican"](10) Dem-20: fill: color["democrat"](20) Rep-20: fill: color["republican"](20) Dem-50: fill: color["democrat"](50) Rep-50: fill: color["republican"](50) error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/clone-shape/gramex.yaml:pptxhandler/clone-shape : pattern: /pptxhandler/clone-shape/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/clone-shape/template.pptx data: votes: url: /mnt/gramener/apps/guide/pptxhandler/clone-shape/vote-share.csv rules: - Candidate: clone-shape: votes add-top: clone.pos * 0.75 Name: text: clone.parent.val.Candidate Picture: image: r"/mnt/gramener/apps/guide/pptxhandler/clone-shape/" + clone.parent.val.Image Share: text: f'{clone.parent.val.Share:.1%}' Bar: width: 3 * clone.parent.val.Share / votes.Share.max() error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/death/gramex.yaml:pptxhandler/death : pattern: /pptxhandler/death/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/death/template.pptx data: url: /mnt/gramener/apps/guide/pptxhandler/death/mortality.xlsx transform: data[data['rank'] <= 10] rules: - copy-slide: data.groupby('year') Year: text: copy.key Rank: clone-shape: '["#1", 2, 3, 4, 5, 6, 7, 8, 9, 10]' add-top: clone.pos * 0.5 text: clone.val Age: clone-shape: copy.val.groupby('age', sort=False) add-left: clone.pos * 1 text: clone.key if clone.pos else f'Age {clone.key}' Cause: clone-shape: copy.val add-top: clone.pos % 10 * 0.5 add-left: clone.pos // 10 * 1 text: clone.val.cause fill: '''#f0f0f0'' if clone.val.rate < 10 else ''#d4d4dd'' if clone.val.rate < 50 else ''#c6b9c9'' if clone.val.rate < 100 else ''#ba9cb3'' if clone.val.rate < 500 else ''#b67b9a'' if clone.val.rate < 1000 else ''#ca4471'' ' name: f'!!{clone.val.age} {clone.val.cause}' transition: type: f'morph' duration: 0.3 advance: 1 data: maxrow: copy.val.rankchange.abs().idxmax() Subtitle: text: f'{copy.val.cause[maxrow]} changed {copy.val.rankchange[maxrow]:+0.0f} ranks for age {copy.val.age[maxrow]}' if maxrow == maxrow else None error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/entrepreneurship/gramex.yaml:pptxhandler/entrepreneurship : pattern: /pptxhandler/entrepreneurship/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/entrepreneurship/template.pptx data: url: /mnt/gramener/apps/guide/pptxhandler/entrepreneurship/data.csv rules: - copy-slide: data.groupby('year') data: rne: copy.val.groupby('code')['rne'].first().fillna(0) Rectangle *: fill: '"ACCENT_1+40%" if rne[shape.text] < 0.002 else "ACCENT_1" if rne[shape.text] < 0.003 else "ACCENT_1-25%" if rne[shape.text] < 0.004 else "ACCENT_1-50%" ' text: f'

{shape.text}

{rne[shape.text]:.2%}

' Caption: text: f'BY STATE, {copy.key}' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/groups/gramex.yaml:pptxhandler/groups : pattern: /pptxhandler/groups/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/groups/template.pptx rules: - Internal: Tickets: text: 100 On time: text: 84 SLA: text: f'84%' fill: f'red' - External: Tickets: text: 200 On time: text: 196 SLA: text: f'98%' fill: f'green' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/link/gramex.yaml:pptxhandler/link : pattern: /pptxhandler/link/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/link/template.pptx rules: - slide-number: 1 total: link: 2 site1: link: 3 site2: link: 4 site3: link: 5 - Back: link: f'first' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/position/gramex.yaml:pptxhandler/position : pattern: /pptxhandler/position/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/position/template.pptx rules: - Priority1: width: f'2 cm' - Level1: text: 50 - Priority2: width: f'4 cm' - Level2: text: 100 - Priority3: width: f'6 cm' - Level3: text: 150 - Priority4: width: f'8 cm' - Level4: text: 200 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/sales-funnel/gramex.yaml:pptxhandler/sales-funnel : pattern: /pptxhandler/sales-funnel/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/sales-funnel/template.pptx data: products: url: /mnt/gramener/apps/guide/pptxhandler/sales-funnel/products.yaml rules: - Visitors: text: products['visitors'] Leads: text: products['leads'] Cart: text: products['cart'] headers: Content-Disposition: attachment; filename=output.pptx error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: expiry: duration: 86400 ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/table/gramex.yaml:pptxhandler/table : pattern: /pptxhandler/table/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/table/template.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/table/sales.csv transform: 'data.insert(3, ''Bar 2018'', data[''FY2018'']) or data.insert(5, ''Bar 2017'', data[''FY2017'']) or data.insert(6, ''Growth'', data[''FY2018''] / data[''FY2017''] - 1) or data ' rules: - Sales Table: table: data: sales vertical-align: f'middle' font-size: f'11 pt' header-row: - Name - Indication -

FY2018

- '' -

FY2017

- '' -

Growth

text: Name: cell.val Indication: cell.val FY2018: f'

{cell.val:,d}

' Bar 2018: "f'' + ('\u2588' * int(cell.val / 1000)) + ''" FY2017: f'

{cell.val:,d}

' Bar 2017: "f'' + ('\u2588' * int(cell.val / 1000)) + ''" Growth: "f'

{cell.val:.1%} ' + ('\u25BC' if cell.val < 0 else '\u25B2')\ \ + '

'" width: Name: 1 Indication: 2.5 FY2018: 1 Bar 2018: 1.5 FY2017: 1 Bar 2017: 1.5 Growth: 1 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/text/gramex.yaml:pptxhandler/text : pattern: /pptxhandler/text/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/text/template.pptx rules: - TextBox text: text: f'New text' - TextBox replace: replace: ABC: f'XYZ' - TextBox bold: bold: true - TextBox color: color: f'red' - TextBox font-name: font-name: f'Courier New' - TextBox font-size: font-size: f'24 pt' - TextBox italic: italic: true - TextBox underline: underline: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/text-format/gramex.yaml:pptxhandler/text-style : pattern: /pptxhandler/text-format/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/text-format/template.pptx rules: - Text format: text: shape.text error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/transition/gramex.yaml:pptxhandler/wipe : pattern: /pptxhandler/transition/output.pptx handler: PPTXHandler kwargs: version: 2 source: /mnt/gramener/apps/guide/pptxhandler/transition/template.pptx data: incidents: url: /mnt/gramener/apps/guide/pptxhandler/transition/incidents.csv transform: data.iloc[0] rules: - Total: text: f'{incidents.Total:,.0f}' P1: text: f'{incidents.P1:,.0f}' P2: text: f'{incidents.P2:,.0f}' P3: text: f'{incidents.P3:,.0f}' P4: text: f'{incidents.P4:,.0f}' Title: text: f'Out of a total {incidents.Total:,.0f} incidents this month, {incidents.P1:,.0f} incidents need priority action' - slide-number: 2 transition: type: f'wipe top' duration: 0.5 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/ppt : pattern: /pptxhandler/v1/ppt handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=slide1.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv only: 2 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx change-text: Title 1: text: Total sales is {{ sales["sales"].sum() }} error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/rules-example : pattern: /pptxhandler/v1/rules-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=rules-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 2 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx change: Title 1: text: New Title error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/sales-example : pattern: /pptxhandler/v1/sales-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=sales-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv only: 4 change: replicate: true data: data['sales'].groupby('Category') sales-text: data: data[0] text: Region {{ Category }} has sales of {{ Sales }} error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/text-style : pattern: /pptxhandler/v1/text-style handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=text-style.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 5 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx rule-1: Title 1: text: New title style: color: '#ff0000' Text 1: text: New text style: color: '#00ff00' bold: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/text-xml-style : pattern: /pptxhandler/v1/text-xml-style handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=examples-text-xml-style.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 5 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx rule-1: Title 1: style: color: '#ff00000' font-size: 12 text: New Title Green Bold Text error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/group-example : pattern: /pptxhandler/v1/group-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=group-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 6 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx rule-1: Group 1: Caption: text: New caption Picture: image: /mnt/gramener/apps/guide/pptxhandler/v1/sample.png error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/group-args-example : pattern: /pptxhandler/v1/group-args-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=group-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 6 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx rule-1: Group 1: Caption: text: '{{ args[''text''] }}' Picture: image: /mnt/gramener/apps/guide/pptxhandler/v1/{{ args.get('image', 'sample') }}.png error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/css-example : pattern: /pptxhandler/v1/css-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=css-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 7 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv rule-1: Rectangle 1: css: data: data['sales'] style: opacity: 0.5 color: '#ff0000' fill: '#ffff00' stroke: '#ffff00' width: 200 height: 200 left: 50 top: 100 font-size: 14 font-family: Georgia error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/replace-example : pattern: /pptxhandler/v1/replace-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=replace-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 8 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx change: Title 1: replace: Old: New Title: Heading error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/image-example : pattern: /pptxhandler/v1/image-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=image-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 9 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx change: Picture 1: image: /mnt/gramener/apps/guide/pptxhandler/v1/sample.png error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/table-example : pattern: /pptxhandler/v1/table-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=table-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 10 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: table_data: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv new-edit-table: Table 1: table: data: data['table_data'] style: font-size: 14 text-align: center italic: true underline: true columns: Sales: gradient: Reds Profit: gradient: Greens Growth: gradient: Blues Category: bold: false underline: false italic: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/replicate-example : pattern: /pptxhandler/v1/replicate-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=replicate-slide-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 11 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: replicate_data: ext: json url: /mnt/gramener/apps/guide/pptxhandler/v1/tweets.json multiple-objects: data: data['replicate_data'] replicate: true TextBox 1: text: Tweet id is- {{id_str}}, Username:- {{ user['name'] }} error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/stack-example : pattern: /pptxhandler/v1/stack-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=stack-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 12 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv multiple-objects: TextBox 1: data: data['sales'].to_dict(orient='records') stack: vertical margin: 0.1 text: '{{ Category }}: {{ Sales }}' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/template-example : pattern: /pptxhandler/v1/template-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=template-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 3 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: tweets: ext: json url: /mnt/gramener/apps/guide/pptxhandler/v1/tweets.json change: Title 1: text: Tweet from @{{ tweets[0]['user']['screen_name'] }} error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/bullet-chart-example : pattern: /pptxhandler/v1/bullet-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=bullet-chart-example.pptx only: 13 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv draw-bullet: Bullet Rectangle Horizontal: bullet: data: data['sales']['Sales'].ix[0] poor: 0 good: 30 target: 100 average: 60 orient: horizontal gradient: Oranges text: function: 'lambda v: ''%.1f'' % v' style: font-size: 10 data: font-size: 16 target: text: false font-size: 12 Bullet Rectangle Vertical: bullet: data: data['sales']['Sales'].ix[0] poor: 0 good: 30 target: 100 average: 60 orient: vertical gradient: Oranges text: function: 'lambda v: ''%.1f'' % v' style: font-size: 10 data: font-size: 16 target: text: false font-size: 12 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/calendarmap-example : pattern: /pptxhandler/v1/calendarmap-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=calendarmap-example.pptx only: 14 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: calendar: url: /mnt/gramener/apps/guide/pptxhandler/v1/calendarmap.csv parse_dates: - date_time encoding: utf-8 draw-calendar: Calendar Rectangle: calendarmap: data: function: data['calendar'].sort_values(by=['date_time']).set_index('date_time')['random_column'] width: 35 weekstart: 6 label_top: 40 label_left: 40 text-color: '#000000' startdate: data.index[0] error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/heatgrid-example : pattern: /pptxhandler/v1/heatgrid-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=heatgrid-example.pptx only: 15 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: heatgrid: url: /mnt/gramener/apps/guide/pptxhandler/v1/heatgrid.csv draw-heatgrid: Heatgrid Rectangle: heatgrid: data: data['heatgrid'] row: name column: hour value: value text: true left-margin: 0.2 cell-width: 30 cell-height: 30 na-text: NA na-color: '#cccccc' style: gradient: RdYlGn font-size: 14 margin: 10 text-align: center error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/sankey-example : pattern: /pptxhandler/v1/sankey-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=sankey-example.pptx only: 16 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sankey: url: /mnt/gramener/apps/guide/pptxhandler/v1/sankey.csv draw-sankey: Sankey Rectangle: sankey: data: data['sankey'] sort: true text: function: 'lambda g: g.sum().apply(lambda v: ''Node %s'' % (v.name,), axis=1)' order: function: 'lambda g: -g[''D''].sum() / g[''E''].sum()' color: function: 'lambda g: _color.gradient(g[''D''].sum() / g[''E''].sum() * 2 - 1, _color.RdYlGn)' groups: - A - B - C error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/treemap-example : pattern: /pptxhandler/v1/treemap-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=treemap-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 17 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: treemap: url: /mnt/gramener/apps/guide/pptxhandler/v1/treemap.csv draw-treemap: Treemap Rectangle: treemap: data: data['treemap'] keys: - Family values: '{''screentime'': ''sum''}' size: function: 'lambda v: v[''screentime'']' sort: function: 'lambda v: v.sort_values(by=[''screentime''], ascending=False)' color: function: 'lambda v: _color.gradient(v[''screentime''] / 50 - 3, _color.RdYlGn)' text: function: 'lambda v: ''{}''.format(v[''Family''])' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/grouped-bar-chart-example : pattern: /pptxhandler/v1/grouped-bar-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=grouped-bar-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 18 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Bar Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/column-bar-chart-example : pattern: /pptxhandler/v1/column-bar-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=column-bar-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 19 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Column Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/line-chart-example : pattern: /pptxhandler/v1/line-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=line-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 20 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Line Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/area-chart-example : pattern: /pptxhandler/v1/area-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=area-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 21 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Area Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' opacity: 0.5 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/scatter-chart-example : pattern: /pptxhandler/v1/scatter-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=scatter-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 22 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Scatter Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/bubble-chart-example : pattern: /pptxhandler/v1/bubble-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=bubble-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 23 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Bubble Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category size: Growth color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/bubble-chart3d-example : pattern: /pptxhandler/v1/bubble-chart3d-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=bubble-chart3d-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 24 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Bubble Chart Name 3D: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category size: Growth color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/radar-chart-example : pattern: /pptxhandler/v1/radar-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=radar-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 25 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Radar Chart Name: chart: data: data['sales'][['Category', 'Sales', 'Profit', 'Growth']] x: Category color: Sales: '#D73027' Profit: '#1A9850' Growth: '#cccccc' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/donut-chart-example : pattern: /pptxhandler/v1/donut-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=donut-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 26 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Donut Chart Name: chart: data: data['sales'][['Category', 'Sales']] x: Category color: FMCG: '#64A73B' Media: '#71685C' Banking: '#EB5605' Government: '#B9CA1A' Pharmaceutical: '#CCDDEA' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html ? subdirs:/mnt/gramener/apps/guide/pptxhandler/gramex.yaml:pptgen-subdirs:/mnt/gramener/apps/guide/pptxhandler/v1/gramex.yaml:pptxhandler/pie-chart-example : pattern: /pptxhandler/v1/pie-chart-example handler: PPTXHandler kwargs: headers: Content-Disposition: attachment; filename=pie-chart-example.pptx Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation only: 27 source: /mnt/gramener/apps/guide/pptxhandler/v1/examples-input.pptx data: sales: url: /mnt/gramener/apps/guide/pptxhandler/v1/sales.csv edit-charts: Pie Chart Name: chart: data: data['sales'][['Category', 'Sales']] x: Category color: FMCG: '#64A73B' Media: '#71685C' Banking: '#EB5605' Government: '#B9CA1A' Pharmaceutical: '#CCDDEA' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/processhandler/gramex.yaml:nslookup-google: pattern: /processhandler/nslookup-google handler: ProcessHandler kwargs: args: nslookup www.google.com shell: true buffer: line headers: Content-Type: text/x-plain error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/processhandler/gramex.yaml:nslookup-google-file: pattern: /processhandler/nslookup-google-file handler: ProcessHandler kwargs: args: nslookup www.google.com shell: true buffer: line stdout: - /mnt/gramener/apps/guide/processhandler/nslookup.txt - pipe stderr: false headers: Content-Type: text/x-plain error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/github/search/users: pattern: /proxyhandler/github/(.*) handler: ProxyHandler kwargs: url: https://api.github.com/{0} request_headers: User-Agent: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/google: pattern: /proxyhandler/google/(.*) handler: ProxyHandler kwargs: url: https://www.googleapis.com/{0} request_headers: User-Agent: true Authorization: Bearer {handler.session[google_access_token]} error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/googlecontacts: pattern: /proxyhandler/googlecontacts/(.*) handler: ProxyHandler kwargs: url: https://www.google.com/m8/feeds/contacts/{0} default: alt: json request_headers: Authorization: Bearer {handler.session[google_access_token]} error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/googletranslate: pattern: /proxyhandler/googletranslate handler: ProxyHandler kwargs: url: https://translation.googleapis.com/language/translate/v2 default: key: AIzaSyBsSkZb3hxciFp0ZB3KLqO1-aQW-K-hqSw error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/googlesearch: pattern: /proxyhandler/googlesearch handler: ProxyHandler kwargs: url: https://www.googleapis.com/customsearch/v1 auth: true default: key: AIzaSyBsSkZb3hxciFp0ZB3KLqO1-aQW-K-hqSw cx: 010282404438907579631:edrnyb3axxi error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/googlelanguage: pattern: /proxyhandler/googlelanguage/(.*) handler: ProxyHandler kwargs: url: https://language.googleapis.com/{0} method: POST xsrf_cookies: false request_headers: Content-Type: application/json default: key: AIzaSyBsSkZb3hxciFp0ZB3KLqO1-aQW-K-hqSw error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/gramener.com: pattern: /proxyhandler/(gramex/.*|ui/.*|node_modules/.*|style.css|common.js|img-2019) handler: ProxyHandler kwargs: url: https://gramener.com/{0} auth: true error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: expiry: duration: 300 subdirs:/mnt/gramener/apps/guide/proxyhandler/gramex.yaml:proxyhandler/facebook: pattern: /proxyhandler/facebook/(.*) handler: ProxyHandler kwargs: url: https://graph.facebook.com/{0} default: access_token: '{handler.session[user][access_token]}' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/r/gramex.yaml:r/prime: pattern: /r/prime handler: FunctionHandler kwargs: function: rcalc.prime(handler) headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/r/gramex.yaml:r/plot.png: pattern: /r/plot.png handler: FunctionHandler kwargs: function: rcalc.plot(handler) headers: Content-Type: image/png Cache-Control: max-age=3600 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/r/gramex.yaml:r/plot_async.png: pattern: /r/plot_async.png handler: FunctionHandler kwargs: function: rcalc.plot_async(handler) headers: Content-Type: image/png Cache-Control: max-age=3600 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/r/gramex.yaml:r/rmarkdown: pattern: /r/(.*Rmd) handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/r transform: '*.Rmd': function: rmarkdown(content, handler) headers: Content-Type: text/html Cache-Control: max-age=3600 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/ratelimit/gramex.yaml:ratelimit/api: pattern: /ratelimit/api handler: FunctionHandler kwargs: function: random.randint(0, 1000) ratelimit: keys: - hourly - args.key limit: 5 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/ratelimit/gramex.yaml:ratelimit/example: pattern: /ratelimit/example handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/ratelimit/example.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/roadmap/gramex.yaml:roadmap/data: pattern: /roadmap/data handler: FunctionHandler kwargs: function: roadmap.get_roadmap headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/sms/gramex.yaml:sms/send: pattern: /sms/send handler: FunctionHandler kwargs: function: gramex.service.sms['amazonsns'].send( to=handler.get_arg('to'), subject=handler.get_arg('subject'), sender=handler.get_arg('sender', 'Gramex'), ) xsrf_cookies: false headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/speech/gramex.yaml:speech/home: pattern: /speech/ handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/speech/index.html ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/speech/gramex.yaml:speech/get_answer: pattern: /speech/get_answer handler: FunctionHandler kwargs: function: speechmodel.get_answer headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/speech/gramex.yaml:speech/suggestion: pattern: /speech/suggestion handler: FunctionHandler kwargs: function: speechmodel.suggestion headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-Uimji: pattern: /speech/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-9VMlt: pattern: /speech/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-zrFuC: pattern: /speech/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/topcause/gramex.yaml:topcause-data: pattern: /topcause/data handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/topcause/weight.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/topcause/gramex.yaml:topcause-drivers: pattern: /topcause/drivers handler: FunctionHandler kwargs: function: topcausecalc.drivers headers: Content-Type: application/json error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/topcause/gramex.yaml:topcause-results: pattern: /topcause/results handler: MLHandler kwargs: data: url: /mnt/gramener/apps/guide/topcause/weight.csv model: class: TopCause target_col: weight error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/translate/gramex.yaml:translate/translate: pattern: /translate/translate handler: FunctionHandler kwargs: function: gramex.ml.translator kwargs: key: AIzaSyBsSkZb3hxciFp0ZB3KLqO1-aQW-K-hqSw source: en target: nl cache: url: sqlite:////home/ubuntu/.config/gramexdata/apps/guide/translate.db table: translate error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/translate/gramex.yaml:translate/cache: pattern: /translate/cache handler: FormHandler kwargs: url: sqlite:////home/ubuntu/.config/gramexdata/apps/guide/translate.db table: translate formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/tutorials/gramex.yaml:superstore-data: pattern: /tutorials/data handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/tutorials/store-sales.csv formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/tutorials/gramex.yaml:store-sales-ctab: pattern: /tutorials/store-sales-ctab handler: FormHandler kwargs: url: /mnt/gramener/apps/guide/tutorials/store-sales.csv modify: data.groupby(['Category', 'Region'])['Sales'].sum().reset_index() formats: json: format: json headers: Content-Type: application/json csv: format: csv headers: Content-Type: text/csv;charset=UTF-8 Content-Disposition: attachment;filename=data.csv html: format: html headers: Content-Type: text/html;charset=UTF-8 xlsx: format: xlsx headers: Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Content-Disposition: attachment;filename=data.xlsx pptx: format: pptx headers: Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation Content-Disposition: attachment;filename=download.pptx default: _limit: 10000 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/tutorials/gramex.yaml:output-steps: pattern: /tutorials/(.*)/output/([0-9]+)/index.html handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/tutorials/*/output/index.html template: true headers: Content-Type: text/html Cache-Control: no-store ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/tutorials/gramex.yaml:output-steps-source: pattern: /tutorials/(.*)/output/([0-9]+)/index.html.source handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/tutorials/*/output/index.html template: true headers: Content-Type: text/plain Cache-Control: no-store ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-3tzIl: pattern: /tutorials/ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-lDUXM: pattern: /tutorials/ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-sECQP: pattern: /tutorials/ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/twitterresthandler/gramex.yaml:twitterresthandler/twitter: pattern: /twitterresthandler/twitter/(.*) handler: TwitterRESTHandler kwargs: key: XkCVNZD5sfWECxHGAGnlHGQFa secret: yU00bx5dHYMbge9IyO5H1KeC5uFnWndntG7u6CH6O4HDZHQg0p redirect: query: next header: Referer url: /twitterresthandler/ error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/twitterresthandler/gramex.yaml:twitterresthandler/twitter-open: pattern: /twitterresthandler/twitter-open/(.*) handler: TwitterRESTHandler kwargs: key: XkCVNZD5sfWECxHGAGnlHGQFa secret: yU00bx5dHYMbge9IyO5H1KeC5uFnWndntG7u6CH6O4HDZHQg0p access_key: 445767176-pqio8PuGlpzULSstlZQbLhRqFJfNBjWFH5LqNRgI access_secret: zVosr4wIS3aM80hErmWUkMePZ6vX830yI7VKxar6xZqgp error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: duration: 600 subdirs:/mnt/gramener/apps/guide/twitterresthandler/gramex.yaml:twitterresthandler/persist: pattern: /twitterresthandler/persist/(.*) handler: TwitterRESTHandler kwargs: key: XkCVNZD5sfWECxHGAGnlHGQFa secret: yU00bx5dHYMbge9IyO5H1KeC5uFnWndntG7u6CH6O4HDZHQg0p access_key: persist access_secret: persist redirect: query: next header: Referer url: /twitterresthandler/ error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: duration: 600 subdirs:/mnt/gramener/apps/guide/twitterresthandler/gramex.yaml:twitterresthandler/sentiment: pattern: /twitterresthandler/sentiment handler: TwitterRESTHandler kwargs: path: search/tweets.json key: XkCVNZD5sfWECxHGAGnlHGQFa secret: yU00bx5dHYMbge9IyO5H1KeC5uFnWndntG7u6CH6O4HDZHQg0p access_key: 445767176-pqio8PuGlpzULSstlZQbLhRqFJfNBjWFH5LqNRgI access_secret: zVosr4wIS3aM80hErmWUkMePZ6vX830yI7VKxar6xZqgp transform: sentiment: function: twitterutils.add_sentiment error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html cache: duration: 600 subdirs:/mnt/gramener/apps/guide/uicomponents/gramex.yaml:guide/uicomponents: pattern: /uicomponents/index.html handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/uicomponents/index.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/uicomponents/gramex.yaml:guide/uicomponents/config: pattern: /uicomponents/config handler: FunctionHandler kwargs: function: json.dumps(gramex.cache.open(guide_ui_app.config_file, 'config'), ensure_ascii=True, indent=2) headers: Content-Type: application/json cache: expiry: duration: 3600 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/uploadhandler/gramex.yaml:uploadhandler/upload: pattern: /uploadhandler/upload handler: UploadHandler kwargs: path: /home/ubuntu/.config/gramexdata/apps/guide/upload/ methods: get redirect: query: next url: /uploadhandler/form error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/uploadhandler/gramex.yaml:uploadhandler/form: pattern: /uploadhandler/form handler: FileHandler kwargs: path: /mnt/gramener/apps/guide/uploadhandler/form.html template: true ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/websockethandler/gramex.yaml:websockethandler/pingbot: pattern: /websockethandler/pingbot handler: WebSocketHandler kwargs: open: function: pingbot.open on_message: function: pingbot.on_message on_close: function: pingbot.on_close error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/websockethandler/gramex.yaml:websockethandler/chat: pattern: /websockethandler/chat handler: WebSocketHandler kwargs: open: function: websocketchat.open on_message: function: websocketchat.on_message on_close: function: websocketchat.on_close error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html subdirs:/mnt/gramener/apps/guide/websockethandler/gramex.yaml:websockethandler/messages: pattern: /websockethandler/messages handler: WebSocketHandler kwargs: open: function: messages.open on_message: function: messages.on_message error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/static-sOxqs: pattern: /./ui/(.*) handler: FunctionHandler kwargs: function: "gramex.apps.ui.cdn_redirect(handler, folder_map={\n '@fortawesome/fontawesome-free':\ \ '@fortawesome/fontawesome-free@5',\n 'bootstrap': 'bootstrap@4',\n 'bootstrap5':\ \ 'bootstrap@5',\n 'bootstrap-select': 'bootstrap-select@1',\n 'bootswatch':\ \ 'bootswatch@4',\n 'comicgen': 'comicgen@1',\n 'd3v5': 'd3@5',\n 'd3-scale-chromatic':\ \ 'd3-scale-chromatic@3',\n 'daterangepickerv3': 'daterangepicker@3',\n \ \ 'dayjs': 'dayjs@1',\n 'dropzone': 'dropzone@5',\n 'file-saver': 'file-saver@2',\n\ \ 'font-awesome': 'font-awesome@4',\n 'g1': 'g1@0.18',\n 'html2canvas':\ \ 'html2canvas@1',\n 'jquery': 'jquery@3',\n 'leaflet': 'leaflet@1',\n \ \ 'lodash': 'lodash@4',\n 'moment': 'moment@2',\n 'morphdom': 'morphdom@2',\n\ \ 'noty': 'noty@3',\n 'numeral': 'numeral@2',\n 'popper.js': 'popper.js@1',\n\ \ 'select2': 'select2@4',\n 'tether-shepherd': 'tether-shepherd@1',\n 'topojson':\ \ 'topojson@3',\n 'uifactory': 'uifactory@1',\n 'url-search-params': '@ungap/url-search-params@0.1',\n\ \ 'vega': 'vega@5',\n 'vega-embed': 'vega-embed@6',\n 'vega-lite': 'vega-lite@4',\n\ })\n" auth: false error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/theme-ebV5i: pattern: /./ui/theme/(.*) handler: FileHandler kwargs: path: (.+\.scss): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} (.+\.png): /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/{0} .+: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/sample.html .*: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/apps/ui/theme/index.html sass: '*.scss, *.sass' template: '*.html' auth: false headers: Cache-Control: public, max-age=86400 ignore: - .* allow: - .allow - '*/.conda/*/site-packages/gramex/apps/*' error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html apps/ui/bootstrap4-aYLJU: pattern: /./ui/bootstraptheme.css handler: FunctionHandler kwargs: function: gramex.apps.ui.sass auth: false headers: Cache-Control: public, max-age=86400 error: 400: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/400.html 401: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/401.html 403: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/403.html 404: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/404.html 500: path: /mnt/gramener/apps/gramex/build/__editable__.gramex-1.94.1-py3-none-any/gramex/handlers/500.html email: alert-gmail: type: gmail email: gramex.guide@gmail.com password: tlpmupxnhucitpte gramex-guide-auth: type: gmail email: gramex.guide@gmail.com password: tlpmupxnhucitpte gramex-guide-gmail: type: gmail email: gramex.guide@gmail.com password: tlpmupxnhucitpte gramex-guide-yahoo: type: yahoo email: gramex.guide@yahoo.com password: vlthgqezwaylbref gramex-guide-messages: type: gmail email: gramex.guide@gmail.com password: tlpmupxnhucitpte alert: alert-email: to: - Admin - Admin 2 cc: cc@example.org, cc2@example.org bcc: cc@example.org, cc2@example.org subject: Text email body: 'This email is sent to multiple people. The to:, cc:, bcc: fields accept a list or a comma-separated string of email IDs. ' service: alert-gmail alert-html: to: admin@example.org subject: HTML email body: This content will only be displayed on devices that cannot render HTML email. That's rare. html:

This content will be shown in HTML on supported devices. service: alert-gmail alert-markdown: to: admin@example.org subject: Markdown email body: This content will only be displayed on devices that cannot render HTML email. That's rare. markdown: 'This is Markdown content. Markup like *emphasis* and **strong** are supported. ' service: alert-gmail alert-content-file: to: admin@example.org subject: HTML email from file bodyfile: /mnt/gramener/apps/guide/alert/email.txt htmlfile: /mnt/gramener/apps/guide/alert/email.html markdownfile: /mnt/gramener/apps/guide/alert/email.md service: alert-gmail alert-images: to: admin@example.org subject: Inline images markdown: '

This email has 2 inline images.

' images: img1: /mnt/gramener/apps/guide/alert/../uicomponents/bg-small.png img2: https://en.wikipedia.org/static/images/wikimedia-button.png service: alert-gmail alert-attachments: to: admin@example.org subject: Email with attachments html: This email contains attachments. attachments: - /mnt/gramener/apps/guide/alert/doc1.docx - https://example.org/sample.pptx service: alert-gmail alert-notify: to: user@example.org subject: Email with notification html: This email will trigger a notification at the end. notify: - alert-notify-success service: alert-gmail alert-notify-success: condition: not args['fail'] to: admin@example.org subject: Email sent html: '{% import yaml %}
{{ yaml.dump(args, default_flow_style=False)
      }}
' service: alert-gmail alert-templates: to: '{{ "admin@example.org" }}' subject: Template email html: '{% import sys %}

This email was sent from {{ sys.platform }}.

{% raw open(r''/mnt/gramener/apps/guide/alert/email.html'').read() %}

' images: img: '{% import os %}{{ os.path.join(r"/mnt/gramener/apps/guide/alert", "../uicomponents/bg-small.png") }}' attachments: - '{% import os %}{{ os.path.join(r"/mnt/gramener/apps/guide/alert", "doc1.docx") }}' service: alert-gmail alert-capture: to: admin@example.org subject: Dashboard attachment html:

Sample dashboard

images: img: http://localhost:9900/?url=http://localhost:9988/&ext=png attachments: - http://localhost:9900/?url=http://localhost:9988/&ext=pdf user: id: sample@example.org role: custom-role service: alert-gmail encrypt: public_key: /home/ubuntu/.ssh/id_rsa.pub private_key: /home/ubuntu/.ssh/id_rsa sms: exotel: sid: gramener2 token: 13f359bf07b9882cea149547960a11536e2a3ad6 amazonsns: aws_access_key_id: '' aws_secret_access_key: '' region_name: ap-southeast-1 smstype: Transactional gramexlog: gramexguide: {}