Skip to main content

未提供项目描述

项目描述

主入口点

PyPI 版本 支持的 Python 版本 代码风格

避免使用的装饰器if __name__ == "__main__":,而是使用

from main_entrypoint import entrypoint

@entrypoint
def main():
    print("Hello World")
$ python my_script.py
Hello World

$ python -c "import my_script"
# no output

安装

pip install main-entrypoint

细节

在函数上指定@entrypoint装饰器my_func可以认为等同于运行

if __name__ == "__main__":
    my_func()

在同一模块的末尾。

如果在同一个文件中多次使用装饰器,则函数按照定义的顺序执行。

默认entrypoint装饰器使用atexit模块。注册的 atexit 函数的简单使用仍然按预期工作,但涉及依赖 atexit 行为的工作流(例如特定异常流)可能:tm:中断。在这些情况下,请考虑使用其他两种可用模式之一first_rerun_remainingimmediate例如

from main_entrypoint import entrypoint

@entrypoint(mode="immediate")
def main():
    print("Hello World")

immediate立即调用修饰函数,模块后面定义的实体将不可用,因此鼓励将函数移动到模块末尾。first_rerun_remaining将在修饰函数两次之后有效地运行所有内容,因此代码应该没有副作用,并且在这种情况下最好只包含定义。默认模式是at_exit并且应该被视为首选。

未来的工作

  • 测试
  • 自动格式化、检查和发布
  • 允许将参数传递给入口点函数

执照

麻省理工学院

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

main-entrypoint-0.1.3.tar.gz (3.9 kB 查看哈希

已上传 source

内置分布

main_entrypoint-0.1.3-py3-none-any.whl (4.0 kB 查看哈希

已上传 py3