Skip to content

Commit 359d1fe

Browse files
authored
Merge pull request #2 from alexpdev/dev
Release PyBen v0.2.3
2 parents 3520360 + 87a14ca commit 359d1fe

18 files changed

Lines changed: 143 additions & 69 deletions

MANIFEST.in

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
include LICENSE
2-
include README.rst
2+
include README.md
3+
include .pylintrc
4+
include .prospector.yml
5+
include mkdocs.yml
36

47
recursive-include pyben *
58
recursive-include tests *
69
recursive-include assets *
710
recursive-include .github *
811
recursive-exclude * __pycache__
912
recursive-exclude * *.py[cod]
10-
recursive-exclude docs *
13+
recursive-include docs *
1114
recursive-exclude site *
1215

13-
recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif *.json *.md
16+
recursive-include Makefile make.bat *.jpg *.png *.gif *.json *.md *.ico

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ clean-build: ## remove build artifacts
4747
rm -fr .codacy-coverage
4848

4949
lint: ## check style with flake8
50-
black pyben tests
50+
black pyben
51+
black tests
52+
isort pyben
53+
isort tests
5154
pylint pyben tests
5255
pycodestyle pyben tests
5356
pydocstyle pyben tests
@@ -68,7 +71,7 @@ coverage: ## check code coverage quickly with the default Python
6871

6972
push: lint docs clean test coverage
7073
git add .
71-
git commit -m "auto push commit coverage"
74+
git commit -m "Updates to testing suit, style linting, bug fixes."
7275
git push
7376
bash codacy.sh report -r coverage.xml
7477

README.md

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Pyben v0.2.1
1+
# Pyben v0.2.3
22

33
Small library for encoding/decoding bencode data.
44
Pyben Enables fast and easy encoding and decoding of bencoded data.
@@ -8,10 +8,13 @@ Pyben Enables fast and easy encoding and decoding of bencoded data.
88
![GitHub repo size](https://img.shields.io/github/repo-size/alexpdev/pyben)
99
![GitHub contributors](https://img.shields.io/github/license/alexpdev/pyben)
1010
![GitHub stars](https://img.shields.io/badge/rating-99-green)
11+
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/af86338dcf0a4a899228df470d20e894)](https://www.codacy.com/gh/alexpdev/pyben/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexpdev/pyben&utm_campaign=Badge_Grade)
12+
[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/af86338dcf0a4a899228df470d20e894)](https://www.codacy.com/gh/alexpdev/pyben/dashboard?utm_source=github.com&utm_medium=referral&utm_content=alexpdev/pyben&utm_campaign=Badge_Coverage)
13+
[![codecov](https://codecov.io/gh/alexpdev/pyben/branch/master/graph/badge.svg?token=N6TCUUQ6CJ)](https://codecov.io/gh/alexpdev/pyben)
1114

1215
## Prerequisites
1316

14-
* Python3 installed and enabled
17+
Python v3.6+
1518

1619
## Installing PyBen
1720

@@ -27,30 +30,43 @@ Using git:
2730

2831
## Using PyBen
2932

30-
The API is intentionally designed to mimic Python's json module.
33+
The API is intentionally designed to mimic Python's json and pickle modules.
3134

32-
>>> fd = "path/to/file"
35+
>>> import os
36+
>>> import pyben
37+
>>> file_path = "path/to/encoded.file"
3338
>>> data = {"item1": ["item2", 3, [4], {5: "item6"}]}
3439
>>> encoded = pyben.dumps(data)
3540
>>> encoded
36-
... b'd5:item1l5:item2i3eli4eedi5e5:item6eee'
41+
... b'd5:item1l5:item2i3eli4eedi5e5:item6eee'
3742
>>> decoded = pyben.loads(encoded)
38-
... {'item1': ['item2', 3, [4], {5: 'item6'}]}
43+
>>> decoded
44+
... {'item1': ['item2', 3, [4], {5: 'item6'}]}
45+
>>> decoded == data
46+
... True
3947

4048
One key difference is that the 'load' and 'dump' methods accept as arguments,
4149
string paths or path objects as well as open iobuffer.
4250

4351
For Example this:
4452

45-
>> with open("encoded.file", "wb") as fd:
46-
... pyben.dump(data, fd)
47-
>> with open("encoded.file", "rb") as fd:
48-
... decoded = pyben.load(fd)
53+
>>> with open(file_path, "wb") as fd:
54+
>>> pyben.dump(decoded, fd)
55+
>>> os.path.exists(file_path)
56+
... True
57+
>>> with open(file_path, "rb") as fd:
58+
>>> decoded_file = pyben.load(fd)
59+
>>> decoded_file == decoded == data
60+
... True
4961

5062
is the same as doing following.
5163

52-
>>> pyben.dump(data, "encoded.file")
53-
>>> decoded = pyben.load("encoded.file")
64+
>>> pyben.dump(data, file_path)
65+
>>> os.path.exists(file_path)
66+
... True
67+
>>> decoded_file = pyben.load(file_path)
68+
>>> decoded_file == decoded == data
69+
... True
5470

5571
The full API includes many other functions and classes as well.
5672
See docs for more full API.

coverage.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" ?>
2-
<coverage version="5.5" timestamp="1633838575289" lines-valid="1503" lines-covered="344" line-rate="0.2289" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
2+
<coverage version="5.5" timestamp="1633844921303" lines-valid="1503" lines-covered="344" line-rate="0.2289" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
33
<!-- Generated by coverage.py: https://coverage.readthedocs.io -->
44
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
55
<sources>

docs/api/index.html

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,14 +1443,11 @@ <h6 id="pyben.classes.Bendecoder.load--returns">Returns</h6>
14431443
<span class="n">decoder</span> <span class="o">=</span> <span class="bp">cls</span><span class="p">()</span>
14441444
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="s2">&quot;read&quot;</span><span class="p">):</span>
14451445
<span class="n">data</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
1446-
<span class="k">return</span> <span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
14471446

1448-
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
1447+
<span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
14491448
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">_fd</span><span class="p">:</span>
14501449
<span class="n">data</span> <span class="o">=</span> <span class="n">_fd</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
1451-
<span class="k">return</span> <span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
1452-
1453-
<span class="k">raise</span> <span class="n">FilePathError</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
1450+
<span class="k">return</span> <span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
14541451
</code></pre></div>
14551452
</details>
14561453
</div>
@@ -2507,14 +2504,11 @@ <h5 id="pyben.classes.Bendecoder.load--returns">Returns</h5>
25072504
<span class="n">decoder</span> <span class="o">=</span> <span class="bp">cls</span><span class="p">()</span>
25082505
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="s2">&quot;read&quot;</span><span class="p">):</span>
25092506
<span class="n">data</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
2510-
<span class="k">return</span> <span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
25112507

2512-
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
2508+
<span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">item</span><span class="p">):</span>
25132509
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">_fd</span><span class="p">:</span>
25142510
<span class="n">data</span> <span class="o">=</span> <span class="n">_fd</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
2515-
<span class="k">return</span> <span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
2516-
2517-
<span class="k">raise</span> <span class="n">FilePathError</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
2511+
<span class="k">return</span> <span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
25182512
</code></pre></div>
25192513
</details>
25202514
</div>

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,5 +257,5 @@ <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
257257

258258
<!--
259259
MkDocs version : 1.2.2
260-
Build Date UTC : 2021-10-10 04:02:44.861098+00:00
260+
Build Date UTC : 2021-10-10 05:48:30.690289+00:00
261261
-->

docs/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

docs/sitemap.xml.gz

0 Bytes
Binary file not shown.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "pyben",
3-
"version": "0.2.1",
3+
"version": "0.2.3",
44
"description": "Small library for encoding/decoding bencode data. Pyben Enables fast and easy encoding and decoding of bencoded data.",
55
"directories": {
66
"doc": "docs",

pyben/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@
3838
3939
"""
4040

41-
from pyben import classes, bencode, api
41+
from pyben import api, bencode, classes
4242
from pyben.api import dump, dumps, load, loads
43-
from pyben.bencode import benencode, bendecode
44-
from pyben.classes import Benencoder, Bendecoder
43+
from pyben.bencode import bendecode, benencode
44+
from pyben.classes import Bendecoder, Benencoder
4545

46-
__version__ = "0.2.2"
46+
__version__ = "0.2.3"
4747
__author__ = "alexpdev"
4848

4949
__all__ = [

0 commit comments

Comments
 (0)