可执行的org格式的伪代码嵌入到python中。

neulang的Python项目详细描述


纽朗

为人类编码。

说明

neulang是一个嵌入python的自然语言启用层。它接受包含伪代码的脚本,并运行它们。 为什么?

作为任何人都可以学习的最简单的编程语言,python非常棒。 但仍有曲线继续将许多人拒之门外的编码世界。 人们不必学习另一种语言来编码,特别是在这个智能设备、物联网和人工智能的时代。 让我们把编码带给人们,而不是人们去编码。 哦,我有很多org格式的伪代码,我想让它们成为可执行的。

安装

  • pip安装neulang

或者从gitlab克隆最新版本。

功能

  • 命令行模式
    • neu[选项]--命令="*neu命令"
  • 交互模式
    • neu[选项][-i]
    • 退出时使用*退出**退出*ctrl+d
  • 可作为对象实例从模块导入
    • 从Neulang导入Neulang
    • n=neulang()
    • 脚本="*air\u说‘hello world’"
    • n.加载(脚本)
    • n.eval()
  • 运行脚本文件
    • neu[选项]/path/to/script.neu
  • 在脚本文件中运行单个节点
    • neu[选项]script.neu-o"s/org/path/as/regex/or/index"
  • 从命令行导入其他Neulang模块
    • neu[options]-m"path/to/first/module.neu:another/module.neu"
  • python风格的模块访问
    • *包括("neulang.natural.basics")通过脚本
    • n.load_模块("neulang.natural.basics")通过实例
  • 将neu传输到python源代码(需要astor
    • n.到py()通过实例
    • neu script.neu—到py通过cli
  • 访问模块作用域中定义的模式
    • n.get_patterns()通过实例
    • neu script.neu—模式通过cli

用法

  • 注意:这是测试版软件。
  • 为了获得最佳体验,请使用支持组织模式的文本编辑器。最好是用于项目的emacs。一个兄弟项目naic ide也正在开发中。
  • 在新缓冲区上激活组织模式(alt+x org mode enter)并将脚本编写为有组织的伪代码。
  • 修改伪代码,使其遵循tests/tests.neu中提供的操作。以下操作层当前可用:
    • 常规的python表达式节点:

      • *打印("hello world")

      面向python语句的特性的一个临时子集也被重新实现为可调用的,以简化转换。它们的前缀都是x

      • *x嫒setv('os',x嫒import('os'))
    • astir(抽象语法树中间表示)节点作为语句和表达式的切入点(目前还没有全部实现)。它的区别在于以air开头的关键字。在大多数情况下,其余部分往往对应于操作的python本机名称(尽管在本例中没有):

      • *空气设定值
      • **我的字符串
      • **这是一个字符串
      • *air_call打印我的字符串
    • 通过mycroft adapt意图分析器:

      • intent_parts部分采用1+个有效的正则表达式,该表达式使用dict组启用对intent的解析。为了方便起见,命名组可以用双角度表示,例如,<;<;req_my_name>;展开为(?p<;请求我的姓名>;+
      • 正文部分由任何层组成,还将命名组扩展为单个名称绑定。
      • 注意:请参见tests.neu例如用法。
  • 运行脚本:neu script.neu
  • 提供有关您的经验、错误和改进建议的反馈。

示例

目前有一个例子,一个todo应用程序。它使用flasksqlalchemy并基于这个flask简介教程。代码位于examples/flask\u todo中。安装并运行(假设neu已经工作):

  • git clonecd到项目中
  • pip install-r examples/flask_todo/requirements.txt
  • neu示例/烧瓶

这将启动一个flask应用程序,该应用程序提供用于管理todo的api。默认情况下,todo存储在基于-memory的-sqlite数据库中。要与之交互,请转到另一个终端并使用还包括的httpie应用程序(或支持post、get、put和delete方法的首选http客户端)运行:

  • http-f post http://127.0.0.1:5000/api/v0/tasks name=first id=0 note='我的第一个注释'
  • http获取http://127.0.0.1:5000/api/v0/tasks/0
  • http-f输入http://127.0.0.1:5000/api/v0/tasks/0 name=first id=0 note='编辑注释…'
  • http-f post http://127.0.0.1:5000/api/v0/tasks name=first id=0 note='添加更多要做的事情!'< /代码>
  • http获取http://127.0.0.1:5000/api/v0/tasks
  • http删除http://127.0.0.1:5000/api/v0/tasks/0

去看看能实现的neu代码。有3个文件:flask.neu管理flask应用程序,database.neu管理数据库建模和事务,以及todo.neu创建应用程序并定义api端点。别忘了在一个支持组织模式的编辑器中打开!

组织模式入门

org模式是一个用于记录、计划项目和各种其他组织任务的丰富的纯文本系统。它使用了一个由星星表示的层次树结构,可以很容易地用键盘快捷键操作。文本的部分可以折叠起来,仅显示一般结构和当前正在处理的部分。

neulang继承了这些核心特性,这将使编码更像是组织描述所需操作的自然短语/句子的问题。具体来说,使neulang易于操作的org模式特性(及其emacs绑定)是:

  • 创建新节点
    • alt+enter
  • 向上/向下移动单个节点
    • alt+向上/向下
  • 缩进/缩进单个节点
    • alt+左/右
  • 缩进/缩进节点及其子节点
    • alt_shift+左/右
  • 循环父节点折叠
    • 选项卡

有关详细信息,请参见组织手册:结构编辑。

许可证

GNU AGPLv3+。请参见许可证。

贡献

请参见贡献。

发行说明

请参见更改日志 ./p>

待办事项

  • 文档
  • 在ast中实现剩下的核心python特性
  • 更多…

新闻和社区

有关更多信息,请按照neulang dev频道(此处预览)。也可以加入官方的Neulang Chatrel="nofollow">neulang:matrix.org

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在jbosseap6上部署CXF web服务时发生java错误。1.1   tablecell中的java Progressbar和标签   关于Java中此引用的问题   java如何使用下拉列表中选择的值过滤c:forEach给出的结果?   对包含其他对象的类使用BoundedMapperFacade的java Orika映射   java如何测试配置的“键”和“值”。属性文件?   java Ctrl+箭头键、多字变量名和eclipse pydev   无法通过运行索引执行基于java服务器表单的身份验证。jsp而非servlet   如何在java中使用正则表达式更改匹配子字符串的前缀和后缀   java如何安排selenium脚本在一周中的某一天的某个特定时间运行?   FileWatcher中的java溢出事件   java将堆栈大小设置为线程在安卓中似乎没有什么区别   xml为什么Java在我的XPath中添加反斜杠?   具有多个SQL语句的java MySQL ConnectorJ   为什么在eclipse中运行Java应用程序时JFrame不可见?   java正则表达式将2个字符替换为1个字符   UTC时区上的java hibernate+spring启动存储日期故障   Java未正确格式化日期   java双链接列表getData问题