跳转到主要内容

Python包,用于使用非等距网格间距的Filon类型方法计算傅里叶积分。

项目描述

Neffint

Neffint是Non-equidistant Filon Fourier integration的缩写。这是一个Python包,用于使用基于Filon规则的傅里叶积分方法计算傅里叶积分,该方法使用非等距网格间距。

Neffint采用Apache-2.0许可证。详细信息请参阅此处或LICENSE文件。

该包的文档托管在:https://neffint.readthedocs.io/en/latest

仓库结构

以下是仓库结构的简要说明

  • neffint/ - 根目录
    • .github/workflows/ - 持续集成作业
    • examples/ - 使用示例目录
    • neffint/- Python包的源代码目录
    • tests/- 代码测试目录(pytest)
    • LICENSE, README.md, .gitignore - 标准GitHub仓库文件
    • pyproject.toml, setup.py - Python打包说明
    • release.sh - PyPI发布脚本

使用包

要安装Neffint,只需运行

pip install neffint

该软件包的主要功能是能够在非等距频率网格上计算傅里叶积分。fourier_integral_fixed_sampling函数是进行此类计算的一个良好起点。该函数接受一个频率数组和对应的功能值数组,并在一系列时间值范围内执行积分。

improve_frequency_rangefourier_integral_adaptive函数允许自适应地改进初始频率网格,以实现更精确的积分。

位于examples/文件夹中的笔记本更详细地介绍了如何使用该软件包。

开发

Neffint是一个开源项目,因此用户可以随时提供反馈或为代码做出贡献。

提供反馈

如果您在使用该软件包时遇到任何问题,请随意在Github问题上发布问题,并提供对问题的详细说明。该描述应包括以下内容:

  • 问题是什么
  • 为什么这是一个问题
  • 如果问题是关于代码本身的,提供足够的信息以重现该行为
  • (可选)修复问题的想法或建议

为代码做出贡献

使用Git和Github

要为代码做出贡献,请将仓库克隆到您的计算机上,并为您的贡献创建一个新分支。

git clone git@github.com:neffint/neffint.git
git checkout -b your-branch-name

分支名称应从类别开始,后跟一个/和一个描述性名称。所使用的类别包括

  • feature - 用于新的代码功能
  • bugfix - 用于现有代码的修复
  • misc - 用于其他更改,例如结构更改、文档更改、添加测试等。作为一般规则,这些更改不应修改代码本身的行为。

分支名称的示例:feature/add-asymptotic-correction

如果需要,可以创建子分支以将开发分割成更小的部分。对于大型功能,这可以是一种确保更可管理的代码审查大小并因此提高审查质量的好方法。

main分支用于稳定发布。这是一个受保护的分支,意味着对该分支的所有更改都必须通过带有审查的拉取请求进行。在GitHub上,在仓库主页的“拉取请求”选项卡下提交拉取请求。

编码指南

在为代码做出贡献时,请记住代码应该易于未来的读者(包括审查者)理解。因此,尽量使代码尽可能易于阅读。以下是一些具体建议,但不限于:

  • 在函数声明中使用类型提示
  • 为函数、类和模块编写文档字符串
  • 为变量、函数和类使用描述性名称

尽可能将代码分割成具有单一责任的功能和类,并使用相应的单元测试来检查其是否正确执行该任务。

发布版本

要发布版本并将其上传到PyPI,请使用以下程序

  • 在GitHub侧边栏上点击“创建新版本”链接。
  • main上创建一个名为vX.Y.Z的新标签,其中XYZ是发布版本的语义版本号。这应该与neffint/_version.py中的__version__相同。给版本起相同的名称。
  • 点击“生成发布说明”以生成发布说明。不需要额外的说明。
  • 点击发布版本。这将向main的最新提交推送一个git标签,并运行CI作业以构建和发布软件包到PyPI。

或者,可以选择检出 main 分支,并运行 release.sh 脚本,这将也会推送一个 Git 标签并构建和发布版本。使用这个替代过程,仍然建议从推送的标签创建一个 GitHub 发布。主要的区别是

  • 创建 GitHub 发布时,GitHub 发布和 Git 标签将自动相同,而必须在 neffint/_version.py 中手动验证版本号是否匹配。当使用 Shell 脚本时,neffint/_version.py 和 Git 标签将自动相同,但必须手动检查 GitHub 发布是否匹配。
  • release.sh 依赖于使用 setup.py,这是一个 setuptools 正在放弃的格式。GitHub 发布工作流程不依赖于 setup.py 格式。
  • 使用 release.sh 时,必须在本地机器上有一个认证令牌才能上传到 PyPI。GitHub 动作使用存储库密钥对 PyPI 进行认证,因此只需要对 GitHub 存储库具有写入权限(用于创建发布)。

项目详情


下载文件

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

源分布

neffint-1.1.0.tar.gz (26.1 kB 查看哈希值)

上传时间

构建分布

neffint-1.1.0-py3-none-any.whl (21.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面