Skip to main content

swcr:计算机软件著作权程序鉴别材料(即源代码)生成器

目录

安装

pip install swcr

背景

工作中需要申请软件著作权,软件著作权需要提供以下材料:

  1. 申请表:可以在官网通过网页生成
  2. 身份证明:企业的话一般就是营业执照
  3. 程序鉴别材料:一般就是源代码整理出的PDF文件
  4. 文档鉴别材料:一般就是该软件的操作手册

申请表身份证明比较好准备,文档鉴别材料则必须手写,swcr则用于生成程序鉴别材料。目前支持如下功能:

  1. 指定多个源代码目录
  2. 指定多中注释风格
  3. 指定字体、字号、段前间距、段后间距、行距
  4. 排除特定文件、文件夹

使用

程序鉴别材料要求

  1. 每页至少50行
  2. 不能含有注释、空行
  3. 页眉部分必须包含软件名称、版本号、页码(软件名+版本号居中,页码右侧对齐)

如何实现每页50行

上述3点,第2、3两点比较好实现,第1点我通过测试发现,当:

  1. 字号为10.5pt
  2. 行间距为10.5pt
  3. 段前间距为0
  4. 段后间距为2.3pt

时,刚好实现每页50行。

参数

Usage: swcr [OPTIONS]

Options:
  -t, --title TEXT            软件名称+版本号,默认为软件著作权程序鉴别材料生成器V1.0,此名称用于生成页眉
  -i, --indir PATH            源码所在文件夹,可以指定多个,默认为当前目录
  -e, --ext TEXT              源代码后缀,可以指定多个,默认为Python源代码
  -c, --comment-char TEXT     注释字符串,可以指定多个,默认为#、//
  --font-name TEXT            字体,默认为宋体
  --font-size FLOAT RANGE     字号,默认为五号,即10.5号
  --space-before FLOAT RANGE  段前间距,默认为0
  --space-after FLOAT RANGE   段后间距,默认为2.3
  --line-spacing FLOAT RANGE  行距,默认为固定值10.5
  --exclude PATH              需要排除的文件或路径,可以指定多个
  -o, --outfile PATH          输出文件(docx格式),默认为当前目录的code.docx
  -v, --verbose               打印调试信息
  --help                      Show this message and exit.

示例

下面以django-guardian项目为例来说明swcr的用法。

克隆代码

git clone git@github.com:django-guardian/django-guardian.git

生成文档

swcr -i django-guardian -o django-guardian.docx

常见问题

如何指定页眉?

swcr -i django-guardian -t django-guardian -o django-guardian.docx

如何添加其他格式的代码?

上述方法只能识别Python源码,如果需要识别html、css、js代码,可以指定-e参数。

swcr -i django-guardian \
    -t django-guardian \
    -e py -e html -e js \
    -o django-guardian.docx

如何排除指定文件或文件夹?

swcr -i django-guardian \
    -t django-guardian \
    --exclude django-guardian/contrib/ \
    --exclude django-guardian/docs/ \
    --exclude django-guardian/benchmarks/ \
    --exclude django-guardian/example_project/ \
    -o django-guardian.docx

如何调整默认的注释风格?

默认情况下,swcr把以#、//开头的行作为注释行删除,例如我想删除以"""开头的行(Python另一种注释风格):

swcr -i django-guardian \
    -t django-guardian \
    -c '#' -c '//' -c '"""' \
    -o django-guardian.docx

注意,swcr目前不支持删除多行注释。

如何调整字体?

swcr默认使用宋体,如果需要调整可以使用--font-name参数。

swcr -i django-guardian \
    -t django-guardian \
    --font-name menlo \
    -o django-guardian.docx

虽然我知道默认的字体、字号、段前间距、段后间距、行间距可以实现每页50行,但是我还是想调整,怎么办?

swcr -i django-guardian \
    -t django-guardian \
    --font-name menlo \
    --font-size 12 \
    --space-before 1 \
    --space-after 5 \
    --line-spacing 12 \
    -o django-guardian.docx

能不能输出查找文件的详细过程呢?

swcr -i django-guardian -o django-guardian.docx -v
...
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/posts/templates/posts目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/posts/templates目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/posts目录下找到8个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/core/migrations目录下找到3个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/core目录下找到7个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/articles/migrations目录下找到3个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/articles/templates/articles目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/articles/templates目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/articles目录下找到10个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/static/css目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/static/js目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/static/img目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/static目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project/templates目录下找到0个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian/example_project目录下找到29个代码文件.
DEBUG:swcr.swcr:在/Users/dev/Temp/django-guardian目录下找到94个代码文件.

Release files for swcr 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for swcr 1.0.1
File Size Uploaded
swcr-1.0.1.tar.gz 8.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for swcr 1.0.1
File Interpreter ABI Platform
swcr-1.0.1-py3.7.egg Legacy Egg format - - Details
swcr-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 54.4 kB

Release files / swcr-1.0.1.tar.gz

Download URL swcr-1.0.1.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
22ec1183c06202703594f4654b2403b9416f0902a802f002e7ac97031743a188
BLAKE2b-256 checksum
How to use checksums
95adb7172fb65586eadc3b8c8ef65fa2a3a06882f9ba5b494344f9e607c3f056
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.9

Release files / swcr-1.0.1-py3.7.egg

Download URL swcr-1.0.1-py3.7.egg
Size 24.6 kB
Tags Egg
SHA-256 checksum
How to use checksums
4fb0888e60f4cf3f2c38b52e6456a12206ef3e59c90ac1c8c017734a8a415b69
BLAKE2b-256 checksum
How to use checksums
3cdee5bd5288938831c5a8fd923219aa7b25ce31c4aa7858e8a952c3a67ea51e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.9

Release files / swcr-1.0.1-py3-none-any.whl

Download URL swcr-1.0.1-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1fa90aba1c715ddde9fdd445bf611b5bc9bbfc547f5a486a93baa92a79c27d8f
BLAKE2b-256 checksum
How to use checksums
53828681a2ba41325f20dbdfcf4dac8221efc4ed3953649693f66d2d9d27f96e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.9

Release history Release notifications | RSS feed

This release

1.0.1 This release

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page