Commit Graph

10710 Commits

Author SHA1 Message Date
Aditya 90a7007f88 test: warnsize logs, no content header, dataloss 2020-06-29 18:29:31 +05:30
Aditya 23906b6bee refactor: move TypedDict types to types.py
- rename LOGGER -> logger
- remove self._write_to_transport from Stream class and handle all
transport related activities inside HTTP2ClientProtocol class
2020-06-29 18:21:05 +05:30
Marc Hernández 464f24f8c1
Add --data-raw to utils.curl and fix missing method with data (#4612) 2020-06-29 14:20:29 +02:00
Aditya 6387445ef5 test(tox.ini): change Twisted -> Twisted[http2] 2020-06-28 18:44:57 +05:30
Aditya 690dd7f38b test: GET & POST request test for h2 client
- Remove repeated dependency Twisted from setup.py
- Test for both GET & POST when
  - Only 1 request
  - Large number (=20) of requests
and
  - Small Data (10 KB) per request
  - Large Data (10 MB) per request
- Test when request is cancelled by the client'

BREAKING CHANGES
Tests raises OpenSSL.SSL.Error when run using tox. However, all tests
passes when ran using `python -m unittest`.
2020-06-28 16:38:49 +05:30
BroodingKangaroo 05c2587c6a Docs update and tiny fixes 2020-06-28 09:45:45 +03:00
ajaymittur28 f53f06020b Test http schemaless proxy 2020-06-27 23:28:40 +05:30
ajaymittur28 23da8e1068 Add schemaless http proxy support 2020-06-27 20:36:45 +05:30
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
Mikhail Korobov 0c8d8c5e85
Merge pull request #4645 from Lukas0907/fix-starturlsspider
Spider constructor expects name as argument, not start_urls.
2020-06-25 18:36:43 +05:00
Adrián Chaves 9f60481360 Bump version: 2.1.0 → 2.2.0 2020-06-24 12:27:39 +02:00
Adrián Chaves 6f4c964aa4
Cover Scrapy 2.2.0 in the release notes (#4630) 2020-06-24 12:26:38 +02:00
Aditya 065b3153fe Merge branch 'master' of https://github.com/scrapy/scrapy into h2-client-protocol 2020-06-24 07:51:41 +05:30
Aditya 69f6d038c0 feat: TypedDict for Stream._response
- remove test_protocol.py as working testing environment is setup 🙂🙃
- Add typing_extensions as dependency to support TypedDict for
python<3.8
2020-06-24 07:50:21 +05:30
Aditya a97ac0adf8 test: GET request for HTTP2Client using mockserver 2020-06-24 06:40:20 +05:30
Lukas Anzinger 3672f5f988 Spider constructor expects name as argument, not start_urls.
Fixes #4644
2020-06-23 14:56:12 +02:00
Andrey Rahmatullin 536643efde
Merge pull request #4629 from StasDeep/fix/duplicated-feed-logs
Fix duplicated feed logs
2020-06-23 15:33:48 +05:00
Andrey Rahmatullin 4bee73cfa7
Merge pull request #4637 from elacuesta/typing
Typing: Tox env, CI job
2020-06-23 15:31:37 +05:00
Andrey Rahmatullin 374d996093
Merge pull request #4642 from elacuesta/docs-loaders-dataclass
Docs: add note about dataclass items and loaders
2020-06-23 15:30:48 +05:00
Adrián Chaves cfd039aeb6 Remove a duplicate GCS_PROJECT_ID reference target 2020-06-22 19:28:33 +02:00
Eugenio Lacuesta 73b6ce8cb5
Update docs about dataclass items and loaders 2020-06-22 14:13:37 -03:00
Eugenio Lacuesta 1335d9053e
Update docs/topics/loaders.rst
Co-authored-by: Adrián Chaves <adrian@chaves.io>
2020-06-22 14:05:44 -03:00
Eugenio Lacuesta 3efea98e05
Docs: add note about dataclass items and loaders 2020-06-22 12:41:25 -03:00
Aditya c74ef660c7 feat: handle response for different reasons
- Add StreamCloseReason enum
- Send response for different cases considering download_warnsize,
download_maxsize, fail_on_data_loss, connection lost, etc.
2020-06-21 09:34:23 +05:30
Aditya 303485a9b4 fix(http2): POST request not sending large body 2020-06-21 00:33:34 +05:30
Eugenio Lacuesta b99fe4aa4c
Add google-cloud-storage to the 'pinned' tox environment 2020-06-19 21:41:15 -03: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
Eugenio Lacuesta 7babf359e0
Typing: Tox env, CI job 2020-06-18 13:56:07 -03:00
Adrián Chaves f9c63384c0
Merge branch 'master' into allow-customizing-export-column-names 2020-06-18 14:09:20 +02:00
Adrián Chaves 88ade19675
Merge branch 'master' into spider-name-collision 2020-06-18 14:01:02 +02:00
Devi Sandeep 5d54173187
Update docs on accessing callback arguments in errback (#4634) 2020-06-18 12:01:38 +02:00
Aditya 700df3eeb7 test: mockserver with h2 protocol for tests
- add Twisted[http2] in setup.py requirements
- add test_protocol.py to test the current implementation

BREAKING CHANGES
test_download times out because of no protocol negotiated between
Mockserver and HTTP/2 client
2020-06-17 21:02:14 +05:30
Aditya 089dbc75e7 chore: use deque for pending request pool
- Use itertools.count to generate next stream_id

BREAKING CHANGES
When sending data/body more than the local flow control window -- no
window update occurs to send the remaining data frames. Hence, the
complete body is not send resulting in no response received.
2020-06-17 20:57:03 +05:30
Stas Glubokiy 3d027fb578
Fix missing storage.store calls in FeedExporter.close_spider (#4626) 2020-06-17 17:08:14 +02:00
Andrey Rahmatullin 89e900e013
Merge pull request #4635 from cool-RR/patch-1
Use chain.from_iterable in python.py
2020-06-17 18:54:10 +05:00
Ram Rachum 214da8e523
Use chain.from_iterable in python.py 2020-06-17 13:50:54 +03:00
Aditya 01ad8b31ab refactor(http2): clean up
- make separate function to parse http headers from Request instance
2020-06-15 05:14:00 +05:30
Aditya de4a34365a fix: large data chunk not received
Every data chunk received needs to be acknowledged to
- update the flow control window size
- get furthur data chunks from the server
2020-06-14 22:43:36 +05:30
Eugenio Lacuesta ec98dabfab
Support for dataclass and attrs items (#3881) 2020-06-14 11:45:27 +02:00
Aditya d06bb12e35 refactor: move H2Connection instance to stream
- Remove all wrapper funtions made such that stream can send header/data
to H2Connection as they were not necessary

BREAKING CHANGES
Looks like, for small set of response data the StreamEnded event is
emitted and everything works well -- tested for both GET & POST request.
Maybe some issue with window size and/or flow control as when the
response data needs to be broken into separate chunks -- not all chunks
are received everytime which leads to indefinite waiting for next data
chunk and the connection is lost due to timeout. 😥

Working on setting up testing environment now. After testing is setup
I'll debug the above bug furthur.
2020-06-13 22:33:28 +05:30
Aditya d09ccf8d3b feat(http2): support for POST requests
BREAKING CHANGES
- Request is sent successfully with its Response received as well.
However, the StreamEnded event is not received which do not fires the
response deferred
2020-06-13 20:40:01 +05:30
Eugenio Lacuesta 8b549392f9
Bump minimum Python version to 3.5.2 (#4615) 2020-06-11 14:53:59 +02:00
Eugenio Lacuesta b6c5289fb9
Close page in pyppeteer example, mention asyncio reactor 2020-06-10 12:11:49 -03:00
Andrey Rahmatullin 092f6fdea1
Merge pull request #4604 from MMesch/fix-startproject-permissions
give write access to template files after copying with startproject
2020-06-10 11:58:16 +05:00
Adrián Chaves 76a2cbf0ff
Apply minor style changes 2020-06-09 21:30:19 +02:00
Eugenio Lacuesta 78aa1b2bfc
Fix typo 2020-06-08 11:19:15 -03:00
Aditya 9ff9caecad feat(http2): support for GET requests 2020-06-07 14:04:53 +05:30