swcr:计算机软件著作权程序鉴别材料(即源代码)生成器
目录
安装
pip install swcr
背景
工作中需要申请软件著作权,软件著作权需要提供以下材料:
- 申请表:可以在官网通过网页生成
- 身份证明:企业的话一般就是营业执照
- 程序鉴别材料:一般就是源代码整理出的PDF文件
- 文档鉴别材料:一般就是该软件的操作手册
申请表身份证明比较好准备,文档鉴别材料则必须手写,swcr则用于生成程序鉴别材料。目前支持如下功能:
- 指定多个源代码目录
- 指定多中注释风格
- 指定字体、字号、段前间距、段后间距、行距
- 排除特定文件、文件夹
使用
程序鉴别材料要求
- 每页至少50行
- 不能含有注释、空行
- 页眉部分必须包含软件名称、版本号、页码(软件名+版本号居中,页码右侧对齐)
如何实现每页50行
上述3点,第2、3两点比较好实现,第1点我通过测试发现,当:
- 字号为10.5pt
- 行间距为10.5pt
- 段前间距为0
- 段后间距为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)
| File | Size | Uploaded | |
|---|---|---|---|
| swcr-1.0.1.tar.gz | 8.6 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|