BroodingKangaroo
05c2587c6a
Docs update and tiny fixes
2020-06-28 09:45:45 +03:00
BroodingKangaroo
88a52198b9
Add batch_item_count support in FEEDS setting
2020-06-27 12:45:08 +03:00
BroodingKangaroo
c3cee74fd4
Change default value of FEED_STORAGE_BATCH_ITEM_COUNT to 0
2020-06-26 18:45:21 +03:00
BroodingKangaroo
77333666f1
resolve conflicts
2020-06-26 14:55:46 +03:00
Lukas Anzinger
3672f5f988
Spider constructor expects name as argument, not start_urls.
...
Fixes #4644
2020-06-23 14:56:12 +02:00
Eugenio Lacuesta
c7f1c7e3f3
Merge branch 'master' into feat-685
2020-06-19 21:30:54 -03:00
Stanislau Hluboki
a4bfd5ab6f
Fix duplicated feed logs
2020-06-19 17:51:56 +03:00
Stas Glubokiy
3d027fb578
Fix missing storage.store calls in FeedExporter.close_spider ( #4626 )
2020-06-17 17:08:14 +02:00
Eugenio Lacuesta
ec98dabfab
Support for dataclass and attrs items ( #3881 )
2020-06-14 11:45:27 +02:00
Eugenio Lacuesta
91e505edfe
Return single element from coroutine callback ( #4609 )
2020-06-02 10:32:14 +02:00
Bulat Khabibullin
5cef927944
Implement TextResponse.json() ( #4574 )
2020-06-01 06:57:23 +02:00
Mikhail Korobov
13215cfb71
Merge pull request #4559 from elacuesta/cancel-request-download
...
Stop response download from signal handler
2020-05-27 21:46:00 +05:00
Andrey Rahmatullin
ff699eb1f8
Merge pull request #4599 from elacuesta/LocalWeakReferencedCache-getitem-fix
...
Fix KeyError in LocalWeakReferencedCache
2020-05-27 21:42:04 +05:00
Andrey Rahmatullin
7bf375098e
Merge pull request #2400 from elacuesta/keep_cookie_header
...
[MRG+1] CookiesMiddleware: keep cookies from 'Cookie' request header, fix encoding
2020-05-27 21:41:43 +05:00
Eugenio Lacuesta
44d5801b05
Fix KeyError in LocalWeakReferencedCache
2020-05-27 11:15:33 -03:00
Eugenio Lacuesta
492197e477
StopDownload: store response in the exception instead of the failure
2020-05-27 10:45:07 -03:00
Eugenio Lacuesta
634ad5ebca
Merge remote-tracking branch 'upstream/master' into cancel-request-download
2020-05-27 10:27:45 -03:00
Kyle Altendorf
5b2af85289
Link to issue describing troublesome pytest versions
2020-05-22 15:09:58 -04:00
Eugenio Lacuesta
f6ed5edc31
CookiesMiddleware: keep cookies from 'Cookie' request header
2020-05-21 11:07:41 -03:00
BroodingKangaroo
677e619d37
Fix too long lines
2020-05-21 14:57:03 +03:00
BroodingKangaroo
5f6c1dceb1
Merge remote-tracking branch 'upstream/master' into ISSUE-4250-add_batch_deliveries
2020-05-21 12:43:04 +03:00
Eugenio Lacuesta
fbe915d9cb
StopDownload: check partial response contents
2020-05-20 20:20:30 -03:00
Eugenio Lacuesta
276721a5dc
Stop response download
2020-05-20 14:46:26 -03:00
Kyle Altendorf
eb8493f09c
Incompatible with pytest 5.4 and 5.4.1
2020-05-20 09:21:34 -04:00
Mikhail Korobov
febe82a907
Merge pull request #4486 from ilias-ant/add-file-status-on-media-pipelines-file-info
...
Add status (downloaded, uptodate) to files information
2020-05-18 22:30:30 +05:00
Mikhail Korobov
314adf6c38
Merge pull request #4237 from elacuesta/flake8-max-line-length
...
Set flake8-max-line-length to 119
2020-05-16 03:26:45 +05:00
Mikhail Korobov
14612fc3d3
Merge pull request #4534 from elacuesta/deprecate-baseitem
...
Deprecate scrapy.item.BaseItem
2020-05-16 03:24:06 +05:00
BroodingKangaroo
10ae1a284f
Minor fixes
2020-05-15 22:50:54 +03:00
Adrián Chaves
36c3c9713e
Run tests with Python 3.5.0 ( #4518 )
...
* Run tests with Python 3.5.0
* Use Ubuntu Trusty 14.04 to test Python 3.5.0
* Use mitmproxy<3.0.0 on Python 3.5.0
* Skip tests requiring mitmproxy in Python 3.5.0
* Change the minimum Python version from 3.5 to 3.5.1
* Do not prevent Scrapy from working with Python 3.5.0
* Force system Python 3.5.1
* Do not install a non-system Python in Python 3.5.1 jobs
* Switch to Trusty to be able to test Xenial’s Python version ¯\_(ツ)_/¯
* Add missing trusty
* Stop breaking old PyPy
* Allow installing Scrapy on Python 3.5.0
2020-05-15 22:37:56 +05:00
Eugenio Lacuesta
3eeecb4273
Merge branch 'master' into flake8-max-line-length
2020-05-15 11:11:20 -03:00
Marc Hernández
fffb0a5b6a
replace set constructor with set literals ( #4573 )
2020-05-15 15:23:09 +02:00
BroodingKangaroo
0627bf476e
Merge remote-tracking branch 'upstream/master' into ISSUE-4250-add_batch_deliveries
2020-05-14 20:59:22 +03:00
Eugenio Lacuesta
ee13c3e95f
Merge branch 'master' into deprecate-baseitem
2020-05-14 13:31:16 -03:00
Eugenio Lacuesta
89d0c98f7a
Merge remote-tracking branch 'upstream/master' into flake8-remove-e128
2020-05-14 11:35:30 -03:00
Eugenio Lacuesta
df8a1d1c01
Flake8: Remove E741
2020-05-14 10:40:50 -03:00
BroodingKangaroo
111a58fe3d
Merge remote-tracking branch 'upstream/master' into ISSUE-4250-add_batch_deliveries
2020-05-14 09:53:14 +03:00
Adrián Chaves
e31b6ccc45
Merge branch 'master' into flake8-remove-e128
2020-05-13 22:39:45 +02:00
BroodingKangaroo
2327ecead0
Rename FEED_STORAGE_BATCH_SIZE to FEED_STORAGE_BATCH_ITEM_COUNT
2020-05-13 22:50:04 +03:00
Adrián Chaves
7dac99bb12
Merge branch 'master' into deprecate-baseitem
2020-05-13 20:35:03 +02:00
Andrey Rahmatullin
519f752d6d
Merge pull request #4566 from elacuesta/flake8-remove-f841
...
Flake8: remove F841
2020-05-13 11:46:48 +05:00
Aditya Kumar
97532a9144
test(spiderloader): no duplicate spider names ( #4560 )
2020-05-12 17:10:09 +02:00
willbeaufoy
cf9be5344a
Prevent create_instance() returning None ( #4532 )
...
Currently create_instance() can return None if an extension is
incorrectly implemented, but the extension will still show up as
enabled in the logs. This can cause confusion, as in the linked bug.
This change prevents this occurring by throwing an error if
create_instance() will return None.
2020-05-11 20:35:25 +02:00
nsirletti
cb8140a42a
Deprecate Response.body_as_unicode() ( #4555 )
...
Co-authored-by: Nicolas Sirletti <n.sirletti@gmail.com>
2020-05-11 20:20:31 +02:00
Eugenio Lacuesta
6f8758624c
Flake8: remove F841
2020-05-11 13:50:34 -03:00
Eugenio Lacuesta
25e9bc2d0d
Merge branch 'master' into flake8-remove-e128
2020-05-11 13:23:57 -03:00
Eugenio Lacuesta
fb7ba6964d
Merge branch 'master' into deprecate-baseitem
2020-05-11 10:21:56 -03:00
Mikhail Korobov
892467cb8a
Merge pull request #4541 from elacuesta/pickle-adjustments
...
Pickle: use protocol 4, update tests
2020-05-11 15:16:14 +05:00
Mikhail Korobov
b183579564
Merge pull request #4205 from elacuesta/bytes_received_signal
...
Add bytes_received signal
2020-05-11 15:09:55 +05:00
Eugenio Lacuesta
9485724d98
Merge branch 'master' into deprecate-baseitem
2020-05-08 19:32:47 -03:00
Eugenio Lacuesta
be39f274b8
Merge branch 'master' into flake8-remove-e128
2020-05-08 18:33:29 -03:00
Mikhail Korobov
333910f6c8
Merge pull request #4554 from elacuesta/linkextractor-remove-lambdas
...
Remove lambda attributes in default link extractor
2020-05-09 02:11:59 +05:00
Eugenio Lacuesta
c2c3054ac1
Flake8: remove E121
2020-05-08 16:43:47 -03:00
Eugenio Lacuesta
3ebf2a0d82
Remove lambdas in link extractor
2020-05-08 15:24:37 -03:00
Antonio Gordillo Toledo
cf09af787e
Remove Python 2 encoding header from files ( #4553 )
2020-05-08 15:45:19 +02:00
Eugenio Lacuesta
6160370927
Merge remote-tracking branch 'upstream/master' into deprecate-baseitem
2020-05-07 14:38:54 -03:00
Eugenio Lacuesta
5256eae60d
Meta class to handle isinstance checks for BaseItem
2020-05-07 14:37:41 -03:00
Eugenio Lacuesta
8b4485134e
Merge branch 'flake8-remove-e126' into flake8-remove-e128
2020-05-07 12:50:20 -03:00
Eugenio Lacuesta
8659b0d896
Merge remote-tracking branch 'upstream/master' into flake8-remove-e126
2020-05-07 09:24:38 -03:00
Mikhail Korobov
a8f61e909f
Merge pull request #4544 from elacuesta/flake8-remove-e129
...
Flake8: remove E129
2020-05-07 15:08:11 +05:00
Mikhail Korobov
a18bfccac2
Merge pull request #4542 from elacuesta/flake8-remove-e122-e124
...
Flake8: remove E122 and E124
2020-05-07 15:05:01 +05:00
Eugenio Lacuesta
7fd2085725
Merge remote-tracking branch 'upstream/master' into bytes_received_signal
2020-05-06 22:41:16 -03:00
Eugenio Lacuesta
d472402a02
Fix pickle test for pypy
2020-05-06 20:30:22 -03:00
Eugenio Lacuesta
881b4f417f
Flake8: Remove E128 (tests, part 3)
2020-05-06 19:33:22 -03:00
Eugenio Lacuesta
bf56517abf
Flake8: Remove E128 (tests, part 2)
2020-05-06 19:18:29 -03:00
Mikhail Korobov
2da952b928
Merge pull request #4519 from Gallaecio/test-ubuntu-bionic
...
Test the latest Ubuntu along the latest Python
2020-05-07 03:12:19 +05:00
Eugenio Lacuesta
9c6d13075a
Flake8: Remove E128 (tests, part 1)
2020-05-06 18:56:14 -03:00
Eugenio Lacuesta
25eeb77ba6
Merge remote-tracking branch 'upstream/master' into flake8-max-line-length
2020-05-06 16:52:17 -03:00
Eugenio Lacuesta
88efc98847
Flake8: remove E129
2020-05-06 16:42:47 -03:00
Eugenio Lacuesta
4c12a234ae
Flake8: Remove E126
2020-05-06 16:10:21 -03:00
Eugenio Lacuesta
cc23d1cb58
Flake8: Remove E124
2020-05-06 15:40:37 -03:00
Eugenio Lacuesta
d71804ef29
Flake8: Remove E122
2020-05-06 15:23:36 -03:00
Eugenio Lacuesta
0e382c8160
Remove unused import
2020-05-06 14:09:10 -03:00
Eugenio Lacuesta
93436f9d3a
Chain pickling exception, test_squeues.py updates
2020-05-06 14:05:27 -03:00
Eugenio Lacuesta
b1ddd7bd7b
Refactor test_squeues.py
2020-05-06 13:44:02 -03:00
Eugenio Lacuesta
8643e8d355
Flake8: remove E123 (Closing bracket does not match indentation of opening bracket's line)
2020-05-06 12:26:04 -03:00
Eugenio Lacuesta
63600243e0
Flake8: remove E125 (Continuation line with same indent as next logical line)
...
Also remove E401 from pytest.ini - no occurrences in the codebase
2020-05-06 10:26:52 -03:00
Eugenio Lacuesta
fe0c582ee0
Flake8: remove E127 in tests (continuation line over-indented for visual indent)
2020-05-06 09:49:10 -03:00
Adrián Chaves
98835a0d40
Merge branch 'master' into test-ubuntu-bionic
2020-05-06 13:59:01 +02:00
Eugenio Lacuesta
17c0cf64ae
Flake8: remove W504 code ( #4525 )
...
Co-authored-by: Mikhail Korobov <kmike84@gmail.com>
2020-05-06 00:14:48 +02:00
Eugenio Lacuesta
7988c676a9
Update Item docstring, update BaseItem occurrences
2020-05-05 13:11:01 -03:00
Eugenio Lacuesta
622ce86066
Test: make sure scrapy.item.Item does not issue a deprecation warning
2020-05-04 16:22:24 -03:00
Eugenio Lacuesta
f75941f79d
Deprecate scrapy.item.BaseItem
2020-05-04 08:53:32 -03:00
BroodingKangaroo
dad2ea7522
Change time_id to batch_time
2020-05-02 01:21:03 +03:00
Eugenio Lacuesta
4d625afda5
Merge branch 'master' into bytes_received_signal
2020-05-01 16:11:32 -03:00
BroodingKangaroo
3f9874fac9
Add test s3 export
2020-05-01 11:52:16 +03:00
Eugenio Lacuesta
f787b8483c
IPv6 test: check for the absence of DNSLookupError
2020-04-28 17:50:06 +02:00
BroodingKangaroo
a18621552f
Merge branch 'master' of https://github.com/BroodingKangaroo/scrapy into ISSUE-4250-add_batch_deliveries
2020-04-27 10:34:36 +03:00
BroodingKangaroo
f0f1be76d1
Using time_id instead of time as a timestamp
2020-04-27 09:56:57 +03:00
Eugenio Lacuesta
efb6f13deb
Remove assertions from production code ( #4440 )
2020-04-23 12:40:10 +02:00
Eugenio Lacuesta
1fecacbb1a
IPv6 test: check for the absence of DNSLookupError
2020-04-20 12:05:15 -03:00
ilias-ant
773ddf77ba
added more tests to cover the (downloaded, uptodate, cached) status functionality
2020-04-19 14:14:17 +03:00
BroodingKangaroo
ec76445dd6
Update tests
2020-04-18 09:29:23 +03:00
Mikhail Korobov
209ab05315
Merge pull request #4500 from victor-torres/reference-callback
...
Serialize requests with callback references as spider attribute
2020-04-17 18:58:28 +05:00
Victor Torres
1ade3fc723
trying to improve test coverage
2020-04-17 10:34:34 -03:00
Eugenio Lacuesta
7926da4bd0
Merge branch 'master' into flake8-max-line-length
2020-04-16 16:05:09 -03:00
Mikhail Korobov
cf39602c30
Merge pull request #4471 from elacuesta/fix-pycodestyle-e731
...
Fix pycodestyle E731 ("do not assign a lambda expression, use a def")
2020-04-16 23:17:31 +05:00
Adrián Chaves
ea3e675801
test_utils_iterators: use os.linesep
2020-04-16 17:10:45 +02:00
Adrián Chaves
cf41803089
Skip test_reactor_poll on Windows
2020-04-16 17:07:29 +02:00
Adrián Chaves
7cc9601029
Improve reporting on test_ipv6_alternative_name_resolver
2020-04-16 16:57:48 +02:00
Eugenio Lacuesta
c922992277
Tests: Move code inside __main__ block
2020-04-16 11:37:37 -03:00
Eugenio Lacuesta
1f2e2a6006
Merge branch 'master' into response_ip_address
2020-04-16 11:32:37 -03:00
Victor Torres
e0921cab66
remove not used code
...
This code is not needed anymore because we're getting the
already mangled name when matching func with spider attributes.
2020-04-16 11:18:59 -03:00
Adrián Chaves
94ee68695a
Mock server: use 127.0.0.1 also for HTTPS
...
Windows throws an error about 0.0.0.0 being external:
https://stackoverflow.com/a/23857995/939364
2020-04-16 15:37:06 +02:00
BroodingKangaroo
5980ae72c6
Some minor fixes and refactoring
2020-04-16 10:13:39 +03:00
Victor Torres
47a992615a
serialize requests with callback references as spider attribute
...
You could define a spider attribute that references a callback method
but if this method has a different name than your spider attribute,
the request serializer is not able to find it on the spider class.
With this commit we're fixing this behavior as we're searching for
callback references in the spider object itself instead of looking
for attributes with the same function's name, that could be different.
2020-04-15 20:03:58 -03:00
BroodingKangaroo
16836e9e77
Merge branch 'ISSUE-4250-add_batch_deliveries' of https://github.com/BroodingKangaroo/scrapy into ISSUE-4250-add_batch_deliveries
2020-04-16 00:41:21 +03:00
BroodingKangaroo
963580463b
Update tests
2020-04-15 23:39:46 +03:00
BroodingKangaroo
39d0d13d3f
Add partial deliveries tests
2020-04-15 23:38:27 +03:00
Adrián Chaves
2f510fd47d
Fix ShellTest.test_local_file on Windows
2020-04-15 21:10:05 +02:00
Mikhail Korobov
2d46777d0a
Merge pull request #4489 from elacuesta/remove-returnValue-function
...
Remove twisted.internet.defer.returnValue occurrences
2020-04-15 22:45:52 +05:00
Eugenio Lacuesta
01d73dd3f0
Merge branch 'master' into flake8-max-line-length
2020-04-15 09:24:33 -03:00
Adrián Chaves
d323a57381
Merge branch 'master' into fix-pycodestyle-e731
2020-04-15 14:16:15 +02:00
Eugenio Lacuesta
94d7ad76cb
Fix pycodestyle E2XX (whitespace) ( #4468 )
2020-04-15 14:11:37 +02:00
Eugenio Lacuesta
4023d5db33
Replace _DefGen_Return exception handling
...
Handle StopIteration instead
2020-04-13 06:35:26 -03:00
Eugenio Lacuesta
1bd8f392c9
Initial removal of twisted.internet.defer.returnValue
2020-04-13 06:12:30 -03:00
ilias-ant
83a0cc6cdf
Add status to files information
2020-04-12 23:22:17 +03:00
Eugenio Lacuesta
950a52468c
Merge branch 'master' into flake8-max-line-length
2020-04-10 15:24:22 -03:00
Eugenio Lacuesta
2265c1fda9
Merge branch 'master' into fix-pycodestyle-e731
2020-04-10 14:32:30 -03:00
Eugenio Lacuesta
c4a5e3f0da
Simplify bytes_received signal
...
Remove "source" parameter
2020-04-06 09:26:13 -03:00
Eugenio Lacuesta
e3342669ae
Merge branch 'master' into bytes_received_signal
2020-04-06 09:17:35 -03:00
Eugenio Lacuesta
4270e0a0da
Fix E731: do not assign a lambda expression
2020-04-04 21:54:55 -03:00
Eugenio Lacuesta
e2d5d357a7
Fix pycodestyle E502
2020-04-01 14:24:30 -03:00
Adrián Chaves
bdb28ac600
Merge remote-tracking branch 'origin/sybil' into azure-pipelines
2020-03-30 20:25:40 +02:00
Adrián Chaves
3fb0027138
Require sybil ≥ 1.3.0 for tests
2020-03-28 17:36:50 +01:00
Daniel Graña
02206e5ffe
Run tox
2020-03-27 02:20:39 -03:00
Eugenio Lacuesta
182394bcec
E501 compliance (tests)
2020-03-22 23:29:30 -03:00
Eugenio Lacuesta
34d607194b
Merge branch 'master' into feat-685
2020-03-18 21:24:36 -03:00
elacuesta
dfbe1d9507
Remove object base class ( #4430 )
2020-03-16 20:12:46 +01:00
Andrey Rahmatullin
ecd3a976d2
Merge pull request #4398 from nyov/remove-crawler-spiders
...
Remove deprecated Crawler.spiders property
2020-03-16 17:21:07 +05:00
Eugenio Lacuesta
aa6075e08c
Merge branch 'master' into bytes_received_signal
2020-03-15 18:05:04 -03:00
Eugenio Lacuesta
bde0384dfd
Merge branch 'master' into spider.parse
2020-03-14 19:53:36 -03:00
Adrián Chaves
3f6cdcabce
Restrict pytest to versions prior to 5.4
2020-03-13 13:25:53 +01:00
Lukas Anzinger
ccc4d88779
Ignore a domain in allowed_domains with port and issue a warning ( #4413 )
2020-03-12 20:42:14 +01:00
nyov
3b0820d747
Deprecate Spider.make_requests_from_url, part 2 ( #4412 )
2020-03-12 20:15:49 +01:00
Mikhail Korobov
db9198bc20
Merge pull request #4409 from nyov/remove-deprecation-warning
...
Remove a 'twisted.test.proto_helpers' deprecation warning
2020-03-12 18:46:47 +05:00
Eugenio Lacuesta
8d30dc0888
Response.follow_all: return empty generators for empty sequences
2020-03-12 09:36:15 -03:00
Andrey Rahmatullin
388f23c30c
Merge pull request #3858 from elacuesta/multiple_feed_export_formats
...
[MRG+1] Support for exporting to multiple feeds in a single crawl
2020-03-12 14:31:57 +05:00
Eugenio Lacuesta
21f1eddc90
Merge branch 'master' into bytes_received_signal
2020-03-11 21:16:35 -03:00
Eugenio Lacuesta
f3bab819ab
Add tests for scrapy.utils.conf.feed_complete_default_values_from_settings
2020-03-11 20:57:31 -03:00
Eugenio Lacuesta
ac73bcc79c
Merge branch 'master' into response_ip_address
2020-03-08 22:30:59 -03:00
Lukas Anzinger
9d9dea0d69
Fix handling of None in allowed_domains.
...
Nones in allowed_domains ought to be ignored and there are also tests
for that scenario. This commit fixes the handling of None and also the
accompanying tests which are now executed again.
2020-03-07 20:34:18 +01:00
nyov
915e363db5
Remove a 'twisted.test.proto_helpers' deprecation warning
2020-03-07 18:03:25 +00:00
Eugenio Lacuesta
ada37c5409
Export to multiple formats in a single crawl
2020-03-05 09:33:57 -03:00
nyov
b1566a6962
Remove deprecated Crawler.spiders property
...
Deprecated since 419026615 (2014, Scrapy 0.25)
2020-03-04 21:23:42 +00:00
Eugenio Lacuesta
3aa5eab993
Merge branch 'master' into response_ip_address
2020-03-03 13:53:43 -03:00
nyov
1b591ff061
Obsolete deprecated settings
...
Obsolete REDIRECT_MAX_METAREFRESH_DELAY
which has been deprecated since Scrapy 0.18
Obsolete LOG_UNSERIALIZABLE_REQUESTS
which has been deprecated since Scrapy 1.2.0
and is replaced by SCHEDULER_DEBUG
2020-03-03 14:03:30 +00:00
Adrián Chaves
6aa0ba4553
Write release notes for Scrapy 2.0.0 ( #4329 )
2020-03-03 09:11:11 +01:00
sakshamb2113
c411a51f42
Fix random failures from test_fixed_delay in some machines ( #4372 )
2020-02-28 13:17:02 +01:00
Adrián Chaves
9aae4c0be7
Add tests for envvar setting warnings
2020-02-27 16:31:43 +01:00
gunblues
034e2c31c7
Use a non-zero exit code when a pipeline's open_spider method throws an exception ( #4207 )
...
* fix issue 4175 - Scrapy does not use a non-zero exit code when pipeline's open_spider throws the exception
* remove extra blank lines
* remove redundant code
* remove blank line at end of file
* more suitable naming for response and make if-condition shorter
* avoid error - AttributeError: 'Deferred' object has no attribute 'result'
* use getattr to make code concisely
* add test
* remove useless file
* modify test class name
* remove unneccessary files
* Fix Flake8-reported issue
* fix these items which are suggested by Gallaecio
・Sort those imports at tests/test_cmdline_crawl_with_pipeline/__init__.py
・Remove the unused setUp method.
・Remove comments generated by Scrapy’s project generation tool.
・Remove the [deploy] section from the scrapy.cfg file (I don’t think it’s needed here)
・Remove BOT_NAME and NEWSPIDER_MODULE from settings.py (I think there are not needed either, although I’m less sure about NEWSPIDER_MODULE)
* have to reserve BOT_NAME, SPIDER_MODULES in settings.py
* Remove unneeded empty lines
* Empty __init__.py file with unneeded comments
* Remove an unneeded empty line at the end
* Remove unneeed empty line from __init__.py file
* Update __init__.py
* Update __init__.py
* Update exception.py
* Update normal.py
* Update __init__.py
* Update __init__.py
* fix W391 blank line at end of file
Co-authored-by: Adrián Chaves <adrian@chaves.io>
2020-02-26 00:46:05 +05:00