jaseci 1.4.2.4__tar.gz → 1.4.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jaseci might be problematic. Click here for more details.
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/PKG-INFO +7 -4
- jaseci-1.4.2.6/jaseci/VERSION +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/cli_tools/book_tools.py +10 -10
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/date.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/file.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/file_handler.py +8 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/internal.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/jaseci.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/net.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/rand.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/request.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/std.py +8 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/storage.py +6 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/stripe.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/task.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_file.py +12 -27
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/url.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/vector.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/webtool.py +3 -4
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/zip.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/actions_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/alias_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/architype_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/global_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/graph_api.py +1 -0
- jaseci-1.4.2.6/jaseci/extens/api/health_api.py +21 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/interface.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/jac_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/jsorc_api.py +8 -9
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/logger_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/master_api.py +2 -1
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/object_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/prometheus_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/queue_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/sentinel_api.py +1 -0
- jaseci-1.4.2.6/jaseci/extens/api/share_api.py +64 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/super_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/user_api.py +22 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/walker_api.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/webhook_api.py +6 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/elastic_svc.py +17 -17
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/kube_svc.py +37 -1
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/redis_svc.py +5 -2
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/storage_svc.py +75 -8
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/architype_interp.py +11 -6
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/interp.py +19 -4
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/sentinel_interp.py +5 -2
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/walker_interp.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/jac_code.py +2 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jac_set.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/machine/jac_scope.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/machine/jac_value.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/machine/machine_state.py +14 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/jsorc.py +28 -2
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/jsorc_utils.py +12 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/live_actions.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/manifests/elastic.yaml +5 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/memory.py +1 -1
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/redis.py +4 -5
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/remote_actions.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/ability.py +8 -13
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/architype.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/edge.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/graph.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/master.py +5 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/node.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/obj_mixins.py +6 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/sentinel.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/test_progs.py +1 -1
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/test_stripe.py +3 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/actions/actions_optimizer.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/id_list.py +1 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci.egg-info/PKG-INFO +7 -4
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci.egg-info/SOURCES.txt +2 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci.egg-info/requires.txt +6 -3
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/setup.py +6 -3
- jaseci-1.4.2.4/jaseci/VERSION +0 -1
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/LICENSE +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/README.md +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/cli_tools/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/cli_tools/jsctl.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/cli_tools/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/cli_tools/tests/test_jsctl.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/elastic.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/mail.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/maths.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/regex.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/std_test_code.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_date.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_elastic.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_file_lib.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_mail_lib.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_maths.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_net_lib.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_regex.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_std.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_std_lib.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_url.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_vector.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_webtool.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/act_lib/tests/test_zlib.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/config_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_architype_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_global_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_graph_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_logger_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_object_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_sentinel_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_uncommon.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_user_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/api/tests/test_walker_api.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/mail_svc.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/prome_svc.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/stripe_svc.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/task_svc.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/extens/svc/tasks.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/interpreter/tests/test_interp.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/ast.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/ast_builder.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/ast_prune_pass.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/codegen_pass.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/ir_pass.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/printer_pass.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/pt_prune_pass.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/schedule.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/ir/passes/stats_pass.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jac.g4 +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jac_parse/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jac_parse/jacLexer.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jac_parse/jacListener.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jac_parse/jacParser.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/disasm.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/inst_ptr.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/machine.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/op_codes.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/jsci_vm/tests/test_codegen.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/machine/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/tests/book_code.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/tests/test_book.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jac/tests/test_lang_14.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/jsorc_settings.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/manifests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/manifests/database.yaml +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/manifests/prometheus.yaml +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/manifests/redis.yaml +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/tests/test_actions.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/jsorc/tests/test_jsorc.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/element.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/super_master.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/prim/walker.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/svc/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/infer.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/jac_test_code.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/jac_test_progs.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/test_core.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/test_jac.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/test_node.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/tests/test_stack.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/actions/__init__.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/actions/actions_manager.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/actions/actions_state.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/file_handler.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/gprof2dot.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/json_handler.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/log_utils.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/test_core.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci/utils/utils.py +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci.egg-info/dependency_links.txt +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci.egg-info/entry_points.txt +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/jaseci.egg-info/top_level.txt +0 -0
- {jaseci-1.4.2.4 → jaseci-1.4.2.6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: jaseci
|
|
3
|
-
Version: 1.4.2.
|
|
3
|
+
Version: 1.4.2.6
|
|
4
4
|
Home-page: https://github.com/Jaseci-Labs/jaseci
|
|
5
5
|
Author: Jason Mars
|
|
6
6
|
Author-email: jason@jaseci.org
|
|
@@ -12,7 +12,8 @@ Requires-Dist: antlr4-python3-runtime<4.10.0,>=4.9.3
|
|
|
12
12
|
Requires-Dist: fastapi[all]<1.0.0,>=0.75.0
|
|
13
13
|
Requires-Dist: requests
|
|
14
14
|
Requires-Dist: redis
|
|
15
|
-
Requires-Dist:
|
|
15
|
+
Requires-Dist: kombu==5.3.1
|
|
16
|
+
Requires-Dist: celery==5.3.1
|
|
16
17
|
Requires-Dist: flake8
|
|
17
18
|
Requires-Dist: pep8-naming
|
|
18
19
|
Requires-Dist: stripe
|
|
@@ -20,7 +21,7 @@ Requires-Dist: pydantic<2.0.0
|
|
|
20
21
|
Requires-Dist: docstring-parser
|
|
21
22
|
Requires-Dist: prometheus_api_client==0.5.1
|
|
22
23
|
Requires-Dist: prometheus-client==0.14.1
|
|
23
|
-
Requires-Dist: kubernetes==
|
|
24
|
+
Requires-Dist: kubernetes==21.7.0
|
|
24
25
|
Requires-Dist: pytest
|
|
25
26
|
Requires-Dist: pytest-xdist
|
|
26
27
|
Requires-Dist: pytest-cov
|
|
@@ -32,4 +33,6 @@ Requires-Dist: beautifulsoup4<4.13.0,>=4.12.2
|
|
|
32
33
|
Requires-Dist: lxml<4.10.0,>=4.9.2
|
|
33
34
|
Requires-Dist: html5lib<1.2,>=1.1
|
|
34
35
|
Requires-Dist: prettytable<3.8.0,>=3.7.0
|
|
35
|
-
Requires-Dist: apache-libcloud==3.
|
|
36
|
+
Requires-Dist: apache-libcloud==3.8.0
|
|
37
|
+
Requires-Dist: azure-storage-blob==12.17.0
|
|
38
|
+
Requires-Dist: python-magic==0.4.27
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.4.2.6
|
|
@@ -205,11 +205,11 @@ class Book:
|
|
|
205
205
|
auth_level = (
|
|
206
206
|
"public"
|
|
207
207
|
if j in Sm._public_api
|
|
208
|
-
else
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
208
|
+
else (
|
|
209
|
+
"user"
|
|
210
|
+
if j in Sm._private_api
|
|
211
|
+
else "admin" if j in Sm._admin_api else "cli_only"
|
|
212
|
+
)
|
|
213
213
|
)
|
|
214
214
|
break
|
|
215
215
|
if not found:
|
|
@@ -438,11 +438,11 @@ class modifiedBook:
|
|
|
438
438
|
auth_level = (
|
|
439
439
|
"public"
|
|
440
440
|
if j in Sm._public_api
|
|
441
|
-
else
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
441
|
+
else (
|
|
442
|
+
"user"
|
|
443
|
+
if j in Sm._private_api
|
|
444
|
+
else "admin" if j in Sm._admin_api else "cli_only"
|
|
445
|
+
)
|
|
446
446
|
)
|
|
447
447
|
break
|
|
448
448
|
if not found:
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"""Built in actions for Jaseci"""
|
|
2
|
-
import mimetypes
|
|
3
2
|
|
|
3
|
+
import mimetypes
|
|
4
|
+
import magic
|
|
5
|
+
from os import path
|
|
6
|
+
from urllib.parse import urlparse
|
|
4
7
|
from requests import get
|
|
5
8
|
from jaseci.jsorc.live_actions import jaseci_action
|
|
6
9
|
|
|
@@ -172,14 +175,16 @@ def download(url: str, header: dict = {}, meta: dict = {}):
|
|
|
172
175
|
"""Standard built in for download file from url"""
|
|
173
176
|
from jaseci.utils.file_handler import FileHandler
|
|
174
177
|
|
|
175
|
-
tmp = FileHandler("
|
|
178
|
+
tmp = FileHandler(path.basename(urlparse(url).path) or "file")
|
|
176
179
|
meta["h"].add_file_handler(tmp)
|
|
177
180
|
|
|
178
181
|
with get(url, stream=True, headers=header) as res:
|
|
179
182
|
res.raise_for_status()
|
|
180
|
-
tmp.open("wb")
|
|
183
|
+
tmp.open("wb+")
|
|
181
184
|
for chunk in res.iter_content(chunk_size=8192):
|
|
182
185
|
tmp.buffer.write(chunk)
|
|
186
|
+
|
|
187
|
+
tmp.content_type = magic.from_buffer(tmp.read(0), mime=True)
|
|
183
188
|
tmp.close()
|
|
184
189
|
|
|
185
190
|
return tmp.id
|
|
@@ -7,6 +7,7 @@ accept lists that are exclusively composed of instances of defined
|
|
|
7
7
|
architype node and/or edges. Keep in mind that a \\lstinline{jac_set}
|
|
8
8
|
is simply a list that only contains such elements.
|
|
9
9
|
"""
|
|
10
|
+
|
|
10
11
|
from jaseci.jsorc.live_actions import jaseci_action
|
|
11
12
|
from jaseci.utils.utils import master_from_meta
|
|
12
13
|
from jaseci.jac.jac_set import JacSet
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Built in actions for Jaseci"""
|
|
2
|
+
|
|
2
3
|
from operator import itemgetter
|
|
3
4
|
from jaseci.utils.utils import app_logger, json_out
|
|
4
5
|
from datetime import datetime
|
|
@@ -111,9 +112,8 @@ def actload_local(filename: str, meta):
|
|
|
111
112
|
"""
|
|
112
113
|
mast = master_from_meta(meta)
|
|
113
114
|
if not mast.is_master(super_check=True, silent=True):
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
)
|
|
115
|
+
raise Exception("Only super master can load actions.")
|
|
116
|
+
|
|
117
117
|
return mast.actions_load_local(file=filename)["success"]
|
|
118
118
|
|
|
119
119
|
|
|
@@ -229,3 +229,8 @@ def log_activity(
|
|
|
229
229
|
activity = elastic.generate_from_meta(meta, log, action)
|
|
230
230
|
|
|
231
231
|
return elastic.doc_activity(activity, query, suffix)
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
@jaseci_action()
|
|
235
|
+
def clear_cache(all: bool = True, meta: dict = {}):
|
|
236
|
+
meta["h"].clear_cache(all)
|
|
@@ -23,6 +23,12 @@ def download(file: str, provider: str = None, container: str = None, meta: dict
|
|
|
23
23
|
return meta["h"].add_file_handler(storage().download(file, provider, container))
|
|
24
24
|
|
|
25
25
|
|
|
26
|
+
@jaseci_action()
|
|
27
|
+
def cdn_url(file: str, provider: str = None, container: str = None, **kwargs):
|
|
28
|
+
"""temp"""
|
|
29
|
+
return storage().cdn_url(file, provider, container, **kwargs)
|
|
30
|
+
|
|
31
|
+
|
|
26
32
|
@jaseci_action()
|
|
27
33
|
def delete(file: str, provider: str = None, container: str = None):
|
|
28
34
|
"""temp"""
|
|
@@ -52,26 +52,11 @@ class FileTest(CoreTest):
|
|
|
52
52
|
self.assertEqual(
|
|
53
53
|
{
|
|
54
54
|
"id": f"{uuid}",
|
|
55
|
-
"name": "
|
|
56
|
-
"content_type":
|
|
57
|
-
"field": None,
|
|
58
|
-
"absolute_name": f"{uuid}-tmp",
|
|
59
|
-
"absolute_path": f"/tmp/{uuid}-tmp",
|
|
60
|
-
"persist": False,
|
|
61
|
-
},
|
|
62
|
-
reps[1],
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
reps = self.call_walker("download_file")
|
|
66
|
-
uuid = reps[0]
|
|
67
|
-
self.assertEqual(
|
|
68
|
-
{
|
|
69
|
-
"id": f"{uuid}",
|
|
70
|
-
"name": "tmp",
|
|
71
|
-
"content_type": None,
|
|
55
|
+
"name": "jaseci_bible.pdf",
|
|
56
|
+
"content_type": "application/pdf",
|
|
72
57
|
"field": None,
|
|
73
|
-
"absolute_name": f"{uuid}-
|
|
74
|
-
"absolute_path": f"/tmp/{uuid}-
|
|
58
|
+
"absolute_name": f"{uuid}-jaseci_bible.pdf",
|
|
59
|
+
"absolute_path": f"/tmp/{uuid}-jaseci_bible.pdf",
|
|
75
60
|
"persist": False,
|
|
76
61
|
},
|
|
77
62
|
reps[1],
|
|
@@ -84,11 +69,11 @@ class FileTest(CoreTest):
|
|
|
84
69
|
self.assertEqual(
|
|
85
70
|
{
|
|
86
71
|
"id": f"{uuid}",
|
|
87
|
-
"name": "
|
|
88
|
-
"content_type":
|
|
72
|
+
"name": "jaseci_bible.pdf",
|
|
73
|
+
"content_type": "application/pdf",
|
|
89
74
|
"field": None,
|
|
90
|
-
"absolute_name": f"{uuid}-
|
|
91
|
-
"absolute_path": f"/tmp/{uuid}-
|
|
75
|
+
"absolute_name": f"{uuid}-jaseci_bible.pdf",
|
|
76
|
+
"absolute_path": f"/tmp/{uuid}-jaseci_bible.pdf",
|
|
92
77
|
"persist": False,
|
|
93
78
|
},
|
|
94
79
|
reps,
|
|
@@ -104,8 +89,8 @@ class FileTest(CoreTest):
|
|
|
104
89
|
"name": "jaseci_bible.pdf",
|
|
105
90
|
"content_type": "application/pdf",
|
|
106
91
|
"field": None,
|
|
107
|
-
"absolute_name": f"{uuid}-
|
|
108
|
-
"absolute_path": f"/tmp/{uuid}-
|
|
92
|
+
"absolute_name": f"{uuid}-jaseci_bible.pdf",
|
|
93
|
+
"absolute_path": f"/tmp/{uuid}-jaseci_bible.pdf",
|
|
109
94
|
"persist": False,
|
|
110
95
|
},
|
|
111
96
|
reps,
|
|
@@ -126,6 +111,6 @@ class FileTest(CoreTest):
|
|
|
126
111
|
self.assertEqual({"test": 1}, kwargs["data"])
|
|
127
112
|
self.assertEqual({"test": 2}, kwargs["headers"])
|
|
128
113
|
self.assertEqual("file", kwargs["files"][0][0])
|
|
129
|
-
self.assertEqual("
|
|
114
|
+
self.assertEqual("jaseci_bible.pdf", kwargs["files"][0][1][0])
|
|
130
115
|
self.assertIsInstance(kwargs["files"][0][1][1], BufferedReader)
|
|
131
|
-
self.
|
|
116
|
+
self.assertEqual("application/pdf", kwargs["files"][0][1][2])
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"""Built in actions for Jaseci"""
|
|
2
|
+
|
|
2
3
|
import requests
|
|
3
4
|
from jaseci.jsorc.live_actions import jaseci_action
|
|
4
5
|
from bs4 import BeautifulSoup
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
@jaseci_action()
|
|
8
|
-
def get_page_meta(url: str, timeout: int = 3, parser: str = "lxml"):
|
|
9
|
+
def get_page_meta(url: str, timeout: int = 3, parser: str = "lxml", headers: dict = {}):
|
|
9
10
|
"""
|
|
10
11
|
Util to parse metadata out of urls and html documents
|
|
11
12
|
Parser option: lxml (default), html5lib, html.parser
|
|
@@ -15,9 +16,7 @@ def get_page_meta(url: str, timeout: int = 3, parser: str = "lxml"):
|
|
|
15
16
|
webpage = requests.get(
|
|
16
17
|
url,
|
|
17
18
|
timeout=timeout,
|
|
18
|
-
headers=
|
|
19
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0"
|
|
20
|
-
},
|
|
19
|
+
headers=headers,
|
|
21
20
|
)
|
|
22
21
|
soup = BeautifulSoup(webpage.content, features=parser)
|
|
23
22
|
meta = soup.find_all("meta")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Health APIs
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from jaseci.jsorc.jsorc import JsOrc
|
|
6
|
+
from jaseci.extens.api.interface import Interface
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class HealthApi:
|
|
10
|
+
"""
|
|
11
|
+
API for readiness probe
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
@Interface.public_api(allowed_methods=["get"])
|
|
15
|
+
def health(self):
|
|
16
|
+
"""
|
|
17
|
+
readiness probe
|
|
18
|
+
"""
|
|
19
|
+
# to update
|
|
20
|
+
# we might need to return some other information here
|
|
21
|
+
return JsOrc.__running__
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
JSORC APIs
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
import json
|
|
5
6
|
from json import dumps
|
|
6
7
|
from time import time
|
|
@@ -118,16 +119,14 @@ class JsOrcApi:
|
|
|
118
119
|
"""
|
|
119
120
|
|
|
120
121
|
# will throw exception if not existing
|
|
121
|
-
|
|
122
|
+
return JsOrc.svc(name).info()
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"error": str(svc.error) if svc.error else None,
|
|
130
|
-
}
|
|
124
|
+
@Interface.admin_api(cli_args=["name"])
|
|
125
|
+
def service_config_set(self, name: str, config: dict):
|
|
126
|
+
"""
|
|
127
|
+
Set a service config
|
|
128
|
+
"""
|
|
129
|
+
return JsOrc.svc_conf_set(name, config, self._h)
|
|
131
130
|
|
|
132
131
|
@Interface.admin_api(cli_args=["name"])
|
|
133
132
|
def service_refresh(self, name: str):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Master api as a mixin
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from jaseci.extens.api.interface import Interface
|
|
5
6
|
from jaseci.utils.id_list import IdList
|
|
6
7
|
import uuid
|
|
@@ -72,7 +73,7 @@ class MasterApi:
|
|
|
72
73
|
def master_active_set(self, name: str):
|
|
73
74
|
"""
|
|
74
75
|
Sets the default master master should use
|
|
75
|
-
NOTE:
|
|
76
|
+
NOTE: Special handler included in general_interface_to_api
|
|
76
77
|
"""
|
|
77
78
|
mas = self.sub_master_ids.get_obj_by_name(name)
|
|
78
79
|
if not mas:
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Object sharing APIs
|
|
3
|
+
"""
|
|
4
|
+
from jaseci.extens.api.interface import Interface
|
|
5
|
+
from jaseci.prim.element import Element
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ShareApi:
|
|
9
|
+
"""
|
|
10
|
+
Sharing APIs.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(self):
|
|
14
|
+
self.incoming = {}
|
|
15
|
+
|
|
16
|
+
@Interface.private_api()
|
|
17
|
+
def share_object(
|
|
18
|
+
self, receiver: str, objs: list[Element] = [], read_only: bool = True
|
|
19
|
+
):
|
|
20
|
+
"""
|
|
21
|
+
Sharing an object with a user
|
|
22
|
+
obj: The list of elements to share
|
|
23
|
+
receiver: master of the receiving user
|
|
24
|
+
read_only: if set true, the object shared will be shared as read-only
|
|
25
|
+
"""
|
|
26
|
+
# Get the master object by id
|
|
27
|
+
receiver_mast = self._h.get_obj(
|
|
28
|
+
caller_id=self.jid, item_id=receiver, override=True
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
for obj in objs:
|
|
32
|
+
# Grant read-only permission to the new user
|
|
33
|
+
self.object_perms_grant(obj, receiver_mast, read_only=read_only)
|
|
34
|
+
obj.save()
|
|
35
|
+
|
|
36
|
+
# Add the objet id to the receiver's incoming list
|
|
37
|
+
receiver_mast.incoming[str(obj.id)] = {"jid": self.jid, "name": self.name}
|
|
38
|
+
|
|
39
|
+
receiver_mast.save()
|
|
40
|
+
self.save()
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
"objects": [str(obj) for obj in objs],
|
|
44
|
+
"sharer": str(self),
|
|
45
|
+
"receiver": str(receiver_mast),
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@Interface.private_api()
|
|
49
|
+
def share_incoming_pop(self, obj_id: str):
|
|
50
|
+
"""
|
|
51
|
+
Remove an item from the incoming list
|
|
52
|
+
"""
|
|
53
|
+
try:
|
|
54
|
+
self.incoming.pop(obj_id)
|
|
55
|
+
return True
|
|
56
|
+
except Exception:
|
|
57
|
+
return None
|
|
58
|
+
|
|
59
|
+
@Interface.private_api()
|
|
60
|
+
def share_incoming_list(self):
|
|
61
|
+
"""
|
|
62
|
+
Get the incoming objects
|
|
63
|
+
"""
|
|
64
|
+
return self.incoming
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
User API
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from jaseci.extens.api.interface import Interface
|
|
5
6
|
from jaseci.jsorc.jsorc import JsOrc
|
|
6
7
|
|
|
@@ -142,3 +143,24 @@ class UserApi:
|
|
|
142
143
|
Permanently delete master with given id
|
|
143
144
|
"""
|
|
144
145
|
pass
|
|
146
|
+
|
|
147
|
+
@Interface.private_api()
|
|
148
|
+
def user_search(
|
|
149
|
+
self,
|
|
150
|
+
name: str,
|
|
151
|
+
detailed: bool = False,
|
|
152
|
+
create_if_not_exist: bool = False,
|
|
153
|
+
create_fields: dict = {},
|
|
154
|
+
):
|
|
155
|
+
"""
|
|
156
|
+
Search for user and returns its master jid.
|
|
157
|
+
Create new one if the user doesn't already exist, optionally.
|
|
158
|
+
create_fields will be forwarded to the user create endpoint, including
|
|
159
|
+
password
|
|
160
|
+
global_init
|
|
161
|
+
global_init_ctx
|
|
162
|
+
other_fields
|
|
163
|
+
send_email
|
|
164
|
+
See the user_create API for more details.
|
|
165
|
+
"""
|
|
166
|
+
pass
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Webhook API
|
|
3
3
|
"""
|
|
4
|
+
|
|
4
5
|
from jaseci.extens.api.interface import Interface
|
|
5
6
|
from fastapi import HTTPException
|
|
6
7
|
from jaseci.jsorc.jsorc import JsOrc
|
|
@@ -55,9 +56,11 @@ class WebhookApi:
|
|
|
55
56
|
)
|
|
56
57
|
sentinel = self._h.get_obj(
|
|
57
58
|
master_id,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
(
|
|
60
|
+
self._h.get_glob("GLOB_SENTINEL")
|
|
61
|
+
if sentinel_id == "global"
|
|
62
|
+
else sentinel_id
|
|
63
|
+
),
|
|
61
64
|
)
|
|
62
65
|
|
|
63
66
|
payload = {"event": req_body}
|