Skip to content

Commit 919073f

Browse files
committed
Update docs
1 parent 706bf46 commit 919073f

File tree

2 files changed

+65
-55
lines changed

2 files changed

+65
-55
lines changed

ChangeLog.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
# ChangeLog
44

5+
<a id="x-28SCRAPYCL-DOCS-2FCHANGELOG-3A-3A-7C0-2E2-2E1-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
6+
7+
## 0.2.1 (2025-04-10)
8+
9+
<a id="fixes"></a>
10+
11+
### Fixes
12+
13+
`scrapycl:start` now properly returns objects without associated generic function.
14+
515
<a id="x-28SCRAPYCL-DOCS-2FCHANGELOG-3A-3A-7C0-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
616

717
## 0.2.0 (2025-02-07)

README.md

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@ I hope this little introduction will urge you to try Scrapy`CL` for writing your
839839

840840
<a id="x-28-23A-28-288-29-20BASE-CHAR-20-2E-20-22SCRAPYCL-22-29-20PACKAGE-29"></a>
841841

842-
#### [package](5149) `scrapycl`
842+
#### [package](2f97) `scrapycl`
843843

844844
<a id="x-28SCRAPYCL-DOCS-2FINDEX-3A-3A-7C-40SCRAPYCL-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
845845

@@ -851,41 +851,41 @@ I hope this little introduction will urge you to try Scrapy`CL` for writing your
851851

852852
<a id="x-28SCRAPYCL-3AFETCH-ERROR-20CONDITION-29"></a>
853853

854-
###### [condition](8048) `scrapycl:fetch-error` (scrapycl-error)
854+
###### [condition](cf23) `scrapycl:fetch-error` (scrapycl-error)
855855

856856
This condition is signalled when [`scrapycl:fetch`][1128] generic-function gets non 200 status code.
857857

858858
**Readers**
859859

860860
<a id="x-28SCRAPYCL-3ARESPONSE-BODY-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3AFETCH-ERROR-29-29"></a>
861861

862-
###### [reader](8048) `scrapycl:response-body` (fetch-error) (:body)
862+
###### [reader](cf23) `scrapycl:response-body` (fetch-error) (:body)
863863

864864
<a id="x-28SCRAPYCL-3ARESPONSE-HEADERS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3AFETCH-ERROR-29-29"></a>
865865

866-
###### [reader](8048) `scrapycl:response-headers` (fetch-error) (:headers)
866+
###### [reader](cf23) `scrapycl:response-headers` (fetch-error) (:headers)
867867

868868
<a id="x-28SCRAPYCL-3ARESPONSE-STATUS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3AFETCH-ERROR-29-29"></a>
869869

870-
###### [reader](8048) `scrapycl:response-status` (fetch-error) (:status)
870+
###### [reader](cf23) `scrapycl:response-status` (fetch-error) (:status)
871871

872872
<a id="x-28SCRAPYCL-3ARESPONSE-URL-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3AFETCH-ERROR-29-29"></a>
873873

874-
###### [reader](8048) `scrapycl:response-url` (fetch-error) (:url)
874+
###### [reader](cf23) `scrapycl:response-url` (fetch-error) (:url)
875875

876876
<a id="x-28SCRAPYCL-DOCS-2FINDEX-3A-3A-40SCRAPYCL-24REQUEST-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
877877

878878
##### REQUEST
879879

880880
<a id="x-28SCRAPYCL-3AREQUEST-20CLASS-29"></a>
881881

882-
###### [class](8077) `scrapycl:request` ()
882+
###### [class](90ae) `scrapycl:request` ()
883883

884884
**Readers**
885885

886886
<a id="x-28SCRAPYCL-3AREQUEST-URL-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3AREQUEST-29-29"></a>
887887

888-
###### [reader](c924) `scrapycl:request-url` (request) (:URL = (ERROR "Please, provide :URL argument."))
888+
###### [reader](b177) `scrapycl:request-url` (request) (:URL = (ERROR "Please, provide :URL argument."))
889889

890890
[`url`][9cc7] to fetch data from.
891891

@@ -895,7 +895,7 @@ This condition is signalled when [`scrapycl:fetch`][1128] generic-function gets
895895

896896
<a id="x-28SCRAPYCL-3ASCRAPYCL-ERROR-20CONDITION-29"></a>
897897

898-
###### [condition](b224) `scrapycl:scrapycl-error` (error)
898+
###### [condition](596d) `scrapycl:scrapycl-error` (error)
899899

900900
Base class for all Scrapy`CL` errors.
901901

@@ -905,47 +905,47 @@ Base class for all Scrapy`CL` errors.
905905

906906
<a id="x-28SCRAPYCL-3ASPIDER-20CLASS-29"></a>
907907

908-
###### [class](1587) `scrapycl:spider` ()
908+
###### [class](387a) `scrapycl:spider` ()
909909

910910
**Readers**
911911

912912
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25INITIAL-REQUESTS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3ASPIDER-29-29"></a>
913913

914-
###### [reader](75ca) `scrapycl/spider::%initial-requests` (spider) (:initial-requests = nil)
914+
###### [reader](33d0) `scrapycl/spider::%initial-requests` (spider) (:initial-requests = nil)
915915

916916
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25SPIDER-QUEUE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3ASPIDER-29-29"></a>
917917

918-
###### [reader](64d5) `scrapycl/spider::%spider-queue` (spider) (= (queue))
918+
###### [reader](6df1) `scrapycl/spider::%spider-queue` (spider) (= (queue))
919919

920920
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25SPIDER-QUEUE-LOCK-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3ASPIDER-29-29"></a>
921921

922-
###### [reader](7dcc) `scrapycl/spider::%spider-queue-lock` (spider) (= (MAKE-LOCK :NAME "Scrapycl Queue Lock"))
922+
###### [reader](51d9) `scrapycl/spider::%spider-queue-lock` (spider) (= (MAKE-LOCK :NAME "Scrapycl Queue Lock"))
923923

924924
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25SPIDER-THREAD-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20SCRAPYCL-3ASPIDER-29-29"></a>
925925

926-
###### [reader](4c6e) `scrapycl/spider::%spider-thread` (spider) (= nil)
926+
###### [reader](82a2) `scrapycl/spider::%spider-thread` (spider) (= nil)
927927

928928
**Accessors**
929929

930930
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25SPIDER-QUEUE-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20SCRAPYCL-3ASPIDER-29-29"></a>
931931

932-
###### [accessor](64d5) `scrapycl/spider::%spider-queue` (spider) (= (queue))
932+
###### [accessor](6df1) `scrapycl/spider::%spider-queue` (spider) (= (queue))
933933

934934
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25SPIDER-QUEUE-LOCK-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20SCRAPYCL-3ASPIDER-29-29"></a>
935935

936-
###### [accessor](7dcc) `scrapycl/spider::%spider-queue-lock` (spider) (= (MAKE-LOCK :NAME "Scrapycl Queue Lock"))
936+
###### [accessor](51d9) `scrapycl/spider::%spider-queue-lock` (spider) (= (MAKE-LOCK :NAME "Scrapycl Queue Lock"))
937937

938938
<a id="x-28SCRAPYCL-2FSPIDER-3A-3A-25SPIDER-THREAD-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20SCRAPYCL-3ASPIDER-29-29"></a>
939939

940-
###### [accessor](4c6e) `scrapycl/spider::%spider-thread` (spider) (= nil)
940+
###### [accessor](82a2) `scrapycl/spider::%spider-thread` (spider) (= nil)
941941

942942
<a id="x-28SCRAPYCL-DOCS-2FINDEX-3A-3A-7C-40SCRAPYCL-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
943943

944944
#### Generics
945945

946946
<a id="x-28SCRAPYCL-3AFETCH-20GENERIC-FUNCTION-29"></a>
947947

948-
##### [generic-function](ddea) `scrapycl:fetch` spider request &key method content max-redirects timeout custom-headers insecure
948+
##### [generic-function](ebe8) `scrapycl:fetch` spider request &key method content max-redirects timeout custom-headers insecure
949949

950950
Fetches page from request's [`url`][9cc7].
951951

@@ -957,57 +957,57 @@ Returns a multiple values:
957957

958958
<a id="x-28SCRAPYCL-3APROCESS-20GENERIC-FUNCTION-29"></a>
959959

960-
##### [generic-function](31d9) `scrapycl:process` spider object
960+
##### [generic-function](dbc1) `scrapycl:process` spider object
961961

962962
Methods of this generic function should return and object or a list/array of object to be enqueued.
963963

964964
This way processing of one web page can give a spider more tasks to process.
965965

966966
<a id="x-28SCRAPYCL-3ASTART-20GENERIC-FUNCTION-29"></a>
967967

968-
##### [generic-function](7974) `scrapycl:start` spider &key wait output &allow-other-keys
968+
##### [generic-function](235c) `scrapycl:start` spider &key wait output &allow-other-keys
969969

970970
<a id="x-28SCRAPYCL-3AWRITE-AS-JSON-20GENERIC-FUNCTION-29"></a>
971971

972-
##### [generic-function](7d52) `scrapycl:write-as-json` object stream
972+
##### [generic-function](0828) `scrapycl:write-as-json` object stream
973973

974974
<a id="x-28SCRAPYCL-DOCS-2FINDEX-3A-3A-7C-40SCRAPYCL-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
975975

976976
#### Functions
977977

978978
<a id="x-28SCRAPYCL-3AENQUEUE-20FUNCTION-29"></a>
979979

980-
##### [function](7a99) `scrapycl:enqueue` spider object &key (output-func nil scrapycl/engine::output-func-p)
980+
##### [function](8296) `scrapycl:enqueue` spider object &key (output-func nil scrapycl/engine::output-func-p)
981981

982982
<a id="x-28SCRAPYCL-3AJSON-DICT-20FUNCTION-29"></a>
983983

984-
##### [function](33a7) `scrapycl:json-dict` FILENAME &KEY (KEY "items")
984+
##### [function](25c7) `scrapycl:json-dict` FILENAME &KEY (KEY "items")
985985

986986
Creates an "output" callback for serializing objects as a list inside a `JSON` dictionary.
987987

988988
<a id="x-28SCRAPYCL-3AJSON-LINES-20FUNCTION-29"></a>
989989

990-
##### [function](8ac5) `scrapycl:json-lines` filename &key (if-exists :supersede)
990+
##### [function](5ecb) `scrapycl:json-lines` filename &key (if-exists :supersede)
991991

992992
<a id="x-28SCRAPYCL-3AJSON-LIST-20FUNCTION-29"></a>
993993

994-
##### [function](2bce) `scrapycl:json-list` filename
994+
##### [function](74a5) `scrapycl:json-list` filename
995995

996996
<a id="x-28SCRAPYCL-3APREVIEW-20FUNCTION-29"></a>
997997

998-
##### [function](9df9) `scrapycl:preview` nodes
998+
##### [function](2233) `scrapycl:preview` nodes
999999

10001000
<a id="x-28SCRAPYCL-3ATYPED-OUTPUT-20FUNCTION-29"></a>
10011001

1002-
##### [function](c835) `scrapycl:typed-output` type-to-output-alist
1002+
##### [function](08c7) `scrapycl:typed-output` type-to-output-alist
10031003

10041004
<a id="x-28SCRAPYCL-DOCS-2FINDEX-3A-3A-7C-40SCRAPYCL-3FTypes-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
10051005

10061006
#### Types
10071007

10081008
<a id="x-28SCRAPYCL-3AURL-20-28TYPE-29-29"></a>
10091009

1010-
##### [type](ae97) `scrapycl:url`
1010+
##### [type](1ef2) `scrapycl:url`
10111011

10121012
Represents a [`url`][9cc7].
10131013

@@ -1020,21 +1020,21 @@ STRING
10201020

10211021
<a id="x-28-23A-28-2819-29-20BASE-CHAR-20-2E-20-22SCRAPYCL-2FDOWNLOADER-22-29-20PACKAGE-29"></a>
10221022

1023-
#### [package](3e0e) `scrapycl/downloader`
1023+
#### [package](58dc) `scrapycl/downloader`
10241024

10251025
<a id="x-28SCRAPYCL-DOCS-2FINDEX-3A-3A-7C-40SCRAPYCL-2FDOWNLOADER-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
10261026

10271027
#### Functions
10281028

10291029
<a id="x-28SCRAPYCL-2FDOWNLOADER-3ARETRY-IF-20FUNCTION-29"></a>
10301030

1031-
##### [function](5b85) `scrapycl/downloader:retry-if` predicate &key (times 3) (delay 1) (max-delay (\* 10 60)) (multiplicator 2)
1031+
##### [function](f6ac) `scrapycl/downloader:retry-if` predicate &key (times 3) (delay 1) (max-delay (\* 10 60)) (multiplicator 2)
10321032

10331033
Call retry-request restart is predicate returns T and with exponential delay.
10341034

10351035
<a id="x-28SCRAPYCL-2FDOWNLOADER-3ARETRY-REQUEST-20FUNCTION-29"></a>
10361036

1037-
##### [function](e73d) `scrapycl/downloader:retry-request` e
1037+
##### [function](1b71) `scrapycl/downloader:retry-request` e
10381038

10391039
Call retry-request restart unconditionally and without delay.
10401040

@@ -1052,30 +1052,30 @@ Call retry-request restart unconditionally and without delay.
10521052
[b2a5]: https://docs.scrapy.org/en/latest/intro/tutorial.html
10531053
[66a8]: https://github.com/40ants/scrapycl
10541054
[5d38]: https://github.com/40ants/scrapycl/actions
1055-
[5149]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/core.lisp#L1
1056-
[3e0e]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/downloader.lisp#L1
1057-
[ddea]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/downloader.lisp#L20
1058-
[e73d]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/downloader.lisp#L67
1059-
[5b85]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/downloader.lisp#L74
1060-
[7a99]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/engine.lisp#L105
1061-
[31d9]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/engine.lisp#L130
1062-
[b224]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/errors.lisp#L14
1063-
[8048]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/errors.lisp#L19
1064-
[8ac5]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/output/json.lisp#L113
1065-
[2bce]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/output/json.lisp#L124
1066-
[33a7]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/output/json.lisp#L146
1067-
[7d52]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/output/json.lisp#L20
1068-
[c835]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/output/typed.lisp#L16
1069-
[8077]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/request.lisp#L10
1070-
[c924]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/request.lisp#L11
1071-
[1587]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/spider.lisp#L24
1072-
[64d5]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/spider.lisp#L25
1073-
[7dcc]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/spider.lisp#L28
1074-
[4c6e]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/spider.lisp#L30
1075-
[75ca]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/spider.lisp#L32
1076-
[7974]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/spider.lisp#L38
1077-
[ae97]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/types.lisp#L8
1078-
[9df9]: https://github.com/40ants/scrapycl/blob/6da0cbe12f6e3c891362581ff8cef2414024166d/src/utils.lisp#L82
1055+
[2f97]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/core.lisp#L1
1056+
[58dc]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/downloader.lisp#L1
1057+
[ebe8]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/downloader.lisp#L20
1058+
[1b71]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/downloader.lisp#L67
1059+
[f6ac]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/downloader.lisp#L74
1060+
[8296]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/engine.lisp#L104
1061+
[dbc1]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/engine.lisp#L129
1062+
[596d]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/errors.lisp#L14
1063+
[cf23]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/errors.lisp#L19
1064+
[5ecb]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/output/json.lisp#L113
1065+
[74a5]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/output/json.lisp#L124
1066+
[25c7]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/output/json.lisp#L146
1067+
[0828]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/output/json.lisp#L20
1068+
[08c7]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/output/typed.lisp#L16
1069+
[90ae]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/request.lisp#L10
1070+
[b177]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/request.lisp#L11
1071+
[387a]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/spider.lisp#L24
1072+
[6df1]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/spider.lisp#L25
1073+
[51d9]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/spider.lisp#L28
1074+
[82a2]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/spider.lisp#L30
1075+
[33d0]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/spider.lisp#L32
1076+
[235c]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/spider.lisp#L38
1077+
[1ef2]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/types.lisp#L8
1078+
[2233]: https://github.com/40ants/scrapycl/blob/706bf46a521c453162e14b762270f2bb056a497c/src/utils.lisp#L82
10791079
[f9c2]: https://github.com/40ants/scrapycl/discussions
10801080
[1e8e]: https://github.com/40ants/scrapycl/issues
10811081
[2490]: https://jsonlines.org/

0 commit comments

Comments
 (0)