-
Notifications
You must be signed in to change notification settings - Fork 2
/
fred-package.lisp
204 lines (175 loc) · 7.28 KB
/
fred-package.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
;; fred-package.lisp
#|
The MIT license.
Copyright (c) 2014 Paul L. Krueger
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
By using this software, you are agreeing to be bound by the FRED® API Terms of Use as described by:
http://api.stlouisfed.org/terms_of_use.html
This product uses the FRED® API but is not endorsed or certified by the Federal Reserve Bank of St. Louis.
Information obtained using this API is subject to the "Legal Notices, Information and Disclaimers" described
at https://research.stlouisfed.org/legal.html.
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|#
#|
This defines the package used for accessing data from the FRED® facility provided by the St. Louis
Federal Reserve Bank. It provides a Lisp interface to the FRED® API. Users of this interface must
first obtain a user account with the Federal Reserve and then request their own API key for use in
making queries.
|#
(defpackage :fred
(:use :common-lisp :s-xml :drakma :hist-date :currency)
(:export
;; Class Names
data-category
fred-data-category
data-series
fred-data-series
data-release
fred-data-release
data-source
fred-data-source
data-tag
fred-data-tag
data-tag-group
fred-data-tag-group
derived-data-series
;; data-category slot accessors
cat-id
cat-name
cat-parent
cat-notes
cat-children
cat-tags
cat-related
cat-series
;; data-series slot accessors
series-id
series-title
series-start-dt
series-end-dt
series-frequency
series-units
series-seasonally-adj
series-last-update-dt
series-popularity
series-transform
series-notes
series-interpolation-method
series-categories
series-release
series-tags
series-observations
series-max
series-min
series-avg
series-sum
;; Additional attribute derivation functions for data-series
series-denominations
series-multipliers
series-observation
series-observation-iterator
;; data-release slot accessors
release-id
release-name
release-press-release
release-link
release-notes
release-dates
release-series
release-sources
release-tags
;; data-source slot accessors
source-id
source-name
source-link
source-notes
source-releases
;; data-tag slot accessors
tag-name
tag-group-id
tag-notes
tag-created
tag-popularity
tag-series-count
tag-series
;; data-tag-group slot accessors
tgroup-id
tgroup-tags
;; derived-data-series accessors
dds-transform-args
dds-transform-func
;; functions that assist in creating derived-data-series
change-transform
derived-change-series
derived-percent-change-series
derived-%-gdp-series
percent-change-transform
percent-of-gdp-transform
percent-of-transform
;; utility function calls
all-tag-groups
find-category
find-or-make-series
find-release
find-series
find-source
find-tag
find-tag-group
initialize-fred
initialize-fred-categories
initialize-fred-tags
remove-category
remove-release
remove-series
remove-source
remove-tag
remove-tag-group
search-for-series
;; Below are direct fred API calls
;; Category
fred-category ;; fred/category - Get a category.
fred-category-children ;; fred/category/children - Get the child categories for a specified parent category.
fred-category-related ;; fred/category/related - Get the related categories for a category.
fred-category-series ;; fred/category/series - Get the series in a category.
fred-category-tags ;; fred/category/tags - Get the tags for a category.
fred-category-related-tags ;; fred/category/related_tags - Get the related tags for a category.
;; Releases
fred-releases ;; fred/releases - Get all releases of economic data.
fred-releases-dates ;; fred/releases/dates - Get release dates for all releases of economic data.
fred-release ;; fred/release - Get a release of economic data.
fred-release-dates ;; fred/release/dates - Get release dates for a release of economic data.
fred-release-series ;; fred/release/series - Get the series on a release of economic data.
fred-release-sources ;; fred/release/sources - Get the sources for a release of economic data.
fred-release-tags ;; fred/release/tags - Get the tags for a release.
fred-release-related-tags ;; fred/release/related_tags - Get the related tags for a release.
;; Series
fred-series ;; fred/series - Get an economic data series.
fred-series-categories ;; fred/series/categories - Get the categories for an economic data series.
fred-series-observations ;; fred/series/observations - Get the observations or data values for an economic data series.
fred-series-release ;; fred/series/release - Get the release for an economic data series.
fred-series-search ;; fred/series/search - Get economic data series that match keywords.
fred-series-search-tags ;; fred/series/search/tags - Get the tags for a series search.
fred-series-search-related-tags ;; fred/series/search/related_tags - Get the related tags for a series search.
fred-series-tags ;; fred/series/tags - Get the tags for an economic data series.
fred-series-updates ;; fred/series/updates - Get economic data series sorted by when observations were updated on the FRED® server.
fred-series-vintagedates ;; fred/series/vintagedates - Get the dates in history when a series' data values were revised or new data values were released.
;; Sources
fred-sources ;; fred/sources - Get all sources of economic data.
fred-source ;; fred/source - Get a source of economic data.
fred-sourece-releases ;; fred/source/releases - Get the releases for a source.
;; Tags
fred-tags ;; fred/tags - Get all tags, search for tags, or get tags by name.
fred-related-tags ;; fred/related_tags - Get the related tags for one or more tags.
fred-tags-series ;; fred/tags/series - Get the series matching tags.
*fred-api-key* ;; The API key - dynamically rebind it for your purposes.
))