myl-fech 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +7 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +48 -0
- data/LICENSE +13 -0
- data/README.rdoc +82 -0
- data/Rakefile +3 -0
- data/autotest/discover.rb +1 -0
- data/fech.gemspec +40 -0
- data/lib/fech/comparison.rb +36 -0
- data/lib/fech/csv.rb +70 -0
- data/lib/fech/default_translations.rb +133 -0
- data/lib/fech/fech_utils.rb +76 -0
- data/lib/fech/filing.rb +341 -0
- data/lib/fech/map_generator.rb +233 -0
- data/lib/fech/mapped.rb +38 -0
- data/lib/fech/mappings.rb +67 -0
- data/lib/fech/rendered_maps.rb +238 -0
- data/lib/fech/translator.rb +138 -0
- data/lib/fech/version.rb +3 -0
- data/lib/fech.rb +15 -0
- data/sources/F1.csv +106 -0
- data/sources/F1M.csv +78 -0
- data/sources/F2.csv +43 -0
- data/sources/F24.csv +18 -0
- data/sources/F3.csv +1 -0
- data/sources/F3L.csv +27 -0
- data/sources/F3P.csv +208 -0
- data/sources/F3P31.csv +39 -0
- data/sources/F3PS.csv +94 -0
- data/sources/F3S.csv +36 -0
- data/sources/F3X.csv +125 -0
- data/sources/F4.csv +86 -0
- data/sources/F5.csv +39 -0
- data/sources/F56.csv +33 -0
- data/sources/F57.csv +44 -0
- data/sources/F6.csv +1 -0
- data/sources/F65.csv +1 -0
- data/sources/F7.csv +1 -0
- data/sources/F76.csv +1 -0
- data/sources/F9.csv +46 -0
- data/sources/F91.csv +17 -0
- data/sources/F92.csv +23 -0
- data/sources/F93.csv +27 -0
- data/sources/F94.csv +18 -0
- data/sources/F99.csv +1 -0
- data/sources/H1.csv +1 -0
- data/sources/H2.csv +1 -0
- data/sources/H3.csv +1 -0
- data/sources/H4.csv +1 -0
- data/sources/H5.csv +1 -0
- data/sources/H6.csv +1 -0
- data/sources/HDR.csv +10 -0
- data/sources/SchA.csv +50 -0
- data/sources/SchB.csv +50 -0
- data/sources/SchC.csv +41 -0
- data/sources/SchC1.csv +52 -0
- data/sources/SchC2.csv +19 -0
- data/sources/SchD.csv +34 -0
- data/sources/SchE.csv +57 -0
- data/sources/SchF.csv +55 -0
- data/sources/SchL.csv +1 -0
- data/sources/TEXT.csv +1 -0
- data/sources/headers/3.csv +1 -0
- data/sources/headers/5.0.csv +1 -0
- data/sources/headers/5.1.csv +1 -0
- data/sources/headers/5.2.csv +1 -0
- data/sources/headers/5.3.csv +1 -0
- data/sources/headers/6.1.csv +1 -0
- data/sources/headers/6.2.csv +1 -0
- data/sources/headers/6.3.csv +1 -0
- data/sources/headers/6.4.csv +1 -0
- data/sources/headers/7.0.csv +49 -0
- data/sources/headers/8.0.csv +49 -0
- data/sources/headers/ignore.csv +5 -0
- data/spec/comparison_spec.rb +30 -0
- data/spec/data/467627.fec +608 -0
- data/spec/data/723604.fec +4 -0
- data/spec/data/730635.fec +2 -0
- data/spec/data/747058.fec +4 -0
- data/spec/data/748730.fec +1196 -0
- data/spec/data/752356.fec +5 -0
- data/spec/data/753533.fec +7 -0
- data/spec/data/764901.fec +7 -0
- data/spec/data/765310.fec +2 -0
- data/spec/data/767339.fec +648 -0
- data/spec/data/82094.fec +144 -0
- data/spec/data/97405.fec +10 -0
- data/spec/default_translations_spec.rb +104 -0
- data/spec/fech_utils_spec.rb +29 -0
- data/spec/filing_spec.rb +314 -0
- data/spec/map_generator_spec.rb +49 -0
- data/spec/mapped_spec.rb +44 -0
- data/spec/mappings_spec.rb +46 -0
- data/spec/sources/F24.csv +18 -0
- data/spec/sources/F3P.csv +1 -0
- data/spec/sources/F3P31.csv +39 -0
- data/spec/sources/SchA.csv +1 -0
- data/spec/sources/SchB.csv +1 -0
- data/spec/sources/SchC.csv +1 -0
- data/spec/sources/headers/3.csv +1 -0
- data/spec/sources/headers/5.0.csv +1 -0
- data/spec/sources/headers/5.1.csv +1 -0
- data/spec/sources/headers/5.2.csv +1 -0
- data/spec/sources/headers/5.3.csv +1 -0
- data/spec/sources/headers/6.1.csv +1 -0
- data/spec/sources/headers/6.2.csv +1 -0
- data/spec/sources/headers/6.3.csv +1 -0
- data/spec/sources/headers/6.4.csv +1 -0
- data/spec/sources/headers/7.0.csv +1 -0
- data/spec/sources/headers/8.0.csv +49 -0
- data/spec/sources/headers/ignore.csv +5 -0
- data/spec/sources/sa.csv +1 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/translator_spec.rb +195 -0
- data/tasks/fech.rake +41 -0
- metadata +342 -0
@@ -0,0 +1,138 @@
|
|
1
|
+
require 'people'
|
2
|
+
|
3
|
+
module Fech
|
4
|
+
|
5
|
+
# Fech::Translator stores a collection of Procs which are associated with
|
6
|
+
# one or many field types, row types and filing versions. When a row that
|
7
|
+
# matches all of these is mapped in Filing, the Proc is run on that value.
|
8
|
+
#
|
9
|
+
# :action => :convert alters a single value in place.
|
10
|
+
# :combine creates a new row out of others.
|
11
|
+
#
|
12
|
+
# It also stores a set of aliases, allowing fields on the returned Hash of
|
13
|
+
# mapped data to be accessed by other names.
|
14
|
+
class Translator
|
15
|
+
|
16
|
+
attr_accessor :translations, :aliases, :cache
|
17
|
+
|
18
|
+
NAME_PARSER = People::NameParser.new
|
19
|
+
|
20
|
+
def initialize(opts = {})
|
21
|
+
@cache = {}
|
22
|
+
@aliases = []
|
23
|
+
@translations = []
|
24
|
+
# op-in default translation packs
|
25
|
+
add_default_translations(opts[:include] || [])
|
26
|
+
end
|
27
|
+
|
28
|
+
# Returns list of all translations that should be applied to values of
|
29
|
+
# specified row and field.
|
30
|
+
#
|
31
|
+
# @option opts [String] :field the current field's value
|
32
|
+
# @option opts [String] :version the current filing's version
|
33
|
+
# @option opts [String] :row the row type
|
34
|
+
# @option opts [Symbol] :action match only :combine or :convert translations
|
35
|
+
def get_translations(opts)
|
36
|
+
key = [:field, :row, :version, :action].collect { |key| opts[key] }.join(":")
|
37
|
+
@cache[key] ||= \
|
38
|
+
procs = translations.collect do |t|
|
39
|
+
t if self.class.applicable_translation?(t, opts)
|
40
|
+
end.compact
|
41
|
+
end
|
42
|
+
|
43
|
+
# Given a translation and any or all of field, version, row, action:
|
44
|
+
# Returns true if all the given options are compatible with those
|
45
|
+
# specified in the translation.
|
46
|
+
#
|
47
|
+
# @param [Hash] translation the translation being tested for relevance
|
48
|
+
# @option opts [String] :field the current field's value
|
49
|
+
# @option opts [String] :version the current filing's version
|
50
|
+
# @option opts [String] :row the row type
|
51
|
+
# @option opts [Symbol] :action match only :combine or :convert translations
|
52
|
+
def self.applicable_translation?(translation, opts)
|
53
|
+
opts.keys.all? { |k| translation[k].match(opts[k].to_s) }
|
54
|
+
end
|
55
|
+
|
56
|
+
# Adds a tranlation for preprocessing a single field's value
|
57
|
+
#
|
58
|
+
# t.convert(:row => /^sa/, :field => :date_coverage_from) { |v| Date.parse(v) }
|
59
|
+
#
|
60
|
+
# @option opts [String] :field the current field's value
|
61
|
+
# @option opts [String] :version the current filing's version
|
62
|
+
# @option opts [String] :row the row type
|
63
|
+
def convert(args={}, &block)
|
64
|
+
add_translation(args.merge(:action => :convert), &block)
|
65
|
+
end
|
66
|
+
|
67
|
+
# Adds a translation that uses other fields to create a new one
|
68
|
+
#
|
69
|
+
# t.combine(:row => "sa", :field => :net_individual_contributions) do |row|
|
70
|
+
# row.individual_contributions - row.individual_refunds
|
71
|
+
# end
|
72
|
+
#
|
73
|
+
# @option opts [String] :field the name of the field to create
|
74
|
+
# @option opts [String] :version the current filing's version
|
75
|
+
# @option opts [String] :row the row type
|
76
|
+
def combine(args={}, &block)
|
77
|
+
add_translation(args.merge(:action => :combine), &block)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Allows @old_name on @row to be accessible on the returned hash as @new_name
|
81
|
+
#
|
82
|
+
# t.alias(:new, :old, "sa")
|
83
|
+
#
|
84
|
+
# @param [Symbol] new_name the given field will be accessible using this token
|
85
|
+
# @param [Symbol] old_name the existing field whose value to alias
|
86
|
+
# @param [Symbol,Regex] row the types of rows this alias should be applied to
|
87
|
+
def alias(new_name, old_name, row=/.*/)
|
88
|
+
aliases << {
|
89
|
+
:row => Fech.regexify(row),
|
90
|
+
:alias => new_name,
|
91
|
+
:for => old_name
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
# Adds a translation to the global translation list.
|
98
|
+
# Åt runtime, any field whose field, row and version match a translation
|
99
|
+
# will have its value preprocessed through &block.
|
100
|
+
#
|
101
|
+
# @option data [String] :field the current field's value
|
102
|
+
# @option data [String] :version the current filing's version
|
103
|
+
# @option data [String] :row the row type
|
104
|
+
def add_translation(data, &block)
|
105
|
+
raise "Block required" unless block_given?
|
106
|
+
|
107
|
+
# The cache may be now be out of date after adding this translation
|
108
|
+
cache = {}
|
109
|
+
|
110
|
+
data ||= {}
|
111
|
+
data[:row] ||= /.*/
|
112
|
+
data[:field] ||= /.*/
|
113
|
+
data[:version] ||= /.*/
|
114
|
+
|
115
|
+
# Convert any string or symbols to regular expressions for the hash
|
116
|
+
data.each do |k,v|
|
117
|
+
data[k] = Fech.regexify(v)
|
118
|
+
end
|
119
|
+
|
120
|
+
data = data.merge(:proc => block)
|
121
|
+
translations << data
|
122
|
+
data
|
123
|
+
end
|
124
|
+
|
125
|
+
# For each default translation set given, execute the corresponding
|
126
|
+
# code in Fech::DefaultTranslations.
|
127
|
+
def add_default_translations(translations_list)
|
128
|
+
translations_list = [translations_list] unless translations_list.is_a?(Array)
|
129
|
+
return if translations_list.empty?
|
130
|
+
|
131
|
+
default = Fech::DefaultTranslations.new(self)
|
132
|
+
translations_list.each do |package|
|
133
|
+
default.send(package)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
end
|
data/lib/fech/version.rb
ADDED
data/lib/fech.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'fech/filing'
|
2
|
+
require 'fech/rendered_maps'
|
3
|
+
require 'fech/mappings'
|
4
|
+
require 'fech/default_translations'
|
5
|
+
require 'fech/translator'
|
6
|
+
require 'fech/mapped'
|
7
|
+
require 'fech/fech_utils'
|
8
|
+
require 'fech/map_generator'
|
9
|
+
require 'fech/csv'
|
10
|
+
require 'fech/comparison'
|
11
|
+
|
12
|
+
module Fech
|
13
|
+
extend FechUtils
|
14
|
+
DEFAULT_VERSION = "8.0"
|
15
|
+
end
|
data/sources/F1.csv
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
canonical,^8.0|7.0|6.4,,^6.3|6.2|6.1,,^5.3|5.2|5.1|5.0,,^3.0,
|
2
|
+
form_type,1,FORM TYPE,1,FORM TYPE,1,FORM TYPE,1,FORM TYPE
|
3
|
+
filer_committee_id_number,2,FILER COMMITTEE ID NUMBER,2,FILER COMMITTEE ID NUMBER,2,FILER FEC CMTE ID ,2,FILER FEC CMTE ID
|
4
|
+
change_of_committee_name,3,CHANGE OF COMMITTEE NAME,3,CHANGE OF COMMITTEE NAME,10,CHG OF COMMITTEE NAME,10,CHG OF COMMITTEE NAME
|
5
|
+
committee_name,4,COMMITTEE NAME,4,COMMITTEE NAME,3,COMMITTEE NAME,3,COMMITTEE NAME
|
6
|
+
change_of_address,5,CHANGE OF ADDRESS,5,CHANGE OF ADDRESS,11,CHG OF ADDRESS,11,CHG OF ADDRESS
|
7
|
+
street_1,6,STREET 1,6,STREET 1,4,STREET 1,4,STREET 1
|
8
|
+
street_2,7,STREET 2,7,STREET 2,5,STREET 2,5,STREET 2
|
9
|
+
city,8,CITY,8,CITY,6,CITY,6,CITY
|
10
|
+
state,9,STATE,9,STATE,7,STATE,7,STATE
|
11
|
+
zip_code,10,ZIP,10,ZIP,8,ZIP,8,ZIP
|
12
|
+
change_of_committee_email,11,CHANGE OF COMMITTEE EMAIL,11,CHANGE OF COMMITTEE EMAIL,,,,
|
13
|
+
committee_email,12,COMMITTEE EMAIL,12,COMMITTEE EMAIL,61,COMMITTEE EMAIL,61,COMMITTEE EMAIL
|
14
|
+
change_of_committee_url,13,CHANGE OF COMMITTEE WEB URL,13,CHANGE OF COMMITTEE WEB URL,,,,
|
15
|
+
committee_url,14,COMMITTEE WEB URL,14,COMMITTEE WEB URL,62,COMMITTEE WEB URL,62,COMMITTEE WEB URL
|
16
|
+
committee_fax_number,,,,,63,COMMITTEE FAX NUMBER,,
|
17
|
+
effective_date,15,EFFECTIVE DATE,15,SUBMISSION DATE,9,DATE (Submitted),9,DATE (Submitted)
|
18
|
+
signature_name,,,,,59,NAME/TREASURER (as signed),59,NAME/TREASURER (as signed)
|
19
|
+
signature_last_name,16,SIGNATURE LAST NAME,16,SIGNATURE LAST NAME,,,,
|
20
|
+
signature_first_name,17,SIGNATURE FIRST NAME,17,SIGNATURE FIRST NAME,,,,
|
21
|
+
signature_middle_name,18,SIGNATURE MIDDLE NAME,18,SIGNATURE MIDDLE NAME,,,,
|
22
|
+
signature_prefix,19,SIGNATURE PREFIX,19,SIGNATURE PREFIX,,,,
|
23
|
+
signature_suffix,20,SIGNATURE SUFFIX,20,SIGNATURE SUFFIX,,,,
|
24
|
+
date_signed,21,DATE SIGNED,21,DATE SIGNED,60,DATE (Signed),60,DATE (Signed)
|
25
|
+
committee_type,22,5. COMMITTEE TYPE,22,5. COMMITTEE TYPE,12,5. COMMITTEE TYPE,12,5. COMMITTEE TYPE
|
26
|
+
candidate_id_number,23,5. CANDIDATE ID NUMBER,23,5. CANDIDATE ID NUMBER,13,5. FEC CANDIDATE ID NUMBER,13,5. FEC CANDIDATE ID NUMBER
|
27
|
+
candidate_name,,,,,14,5. CANDIDATE NAME,14,5. CANDIDATE NAME
|
28
|
+
candidate_last_name,24,5. CANDIDATE LAST NAME,24,5. CANDIDATE LAST NAME,,,,
|
29
|
+
candidate_first_name,25,5. CANDIDATE FIRST NAME,25,5. CANDIDATE FIRST NAME,,,,
|
30
|
+
candidate_middle_name,26,5. CANDIDATE MIDDLE NAME,26,5. CANDIDATE MIDDLE NAME,,,,
|
31
|
+
candidate_prefix,27,5. CANDIDATE PREFIX,27,5. CANDIDATE PREFIX,,,,
|
32
|
+
candidate_suffix,28,5. CANDIDATE SUFFIX,28,5. CANDIDATE SUFFIX,,,,
|
33
|
+
candidate_office,29,5. CANDIDATE OFFICE ,29,5. CANDIDATE OFFICE ,15,5. CAN/OFFICE ,15,5. CAN/OFFICE
|
34
|
+
candidate_state,30,5. CANDIDATE STATE,30,5. CANDIDATE STATE,16,5. CAN/STATE,16,5. CAN/STATE
|
35
|
+
candidate_district,31,5. CANDIDATE DISTRICT,31,5. CANDIDATE DISTRICT,17,5. CAN/DIST,17,5. CAN/DIST
|
36
|
+
party_code,32,5. PARTY CODE,32,5. PARTY CODE,18,5. PARTY CODE,18,5. PARTY CODE
|
37
|
+
party_type,33,5. PARTY TYPE,33,5. PARTY TYPE,19,5. PARTY TYPE,19,5. PARTY TYPE
|
38
|
+
organization_type,34,5 (e). ORGANIZATION TYPE,34,5 (e). ORGANIZATION TYPE,28,6. ORGANIZATION TYPE,28,6. ORGANIZATION TYPE
|
39
|
+
lobbyist_registrant_pac,35,5 (e). LOBBYIST/REGISTRANT PAC ,35,5 (e). LOBBYIST/REGISTRANT PAC ,,,,
|
40
|
+
lobbyist_registrant_pac_2,36,5 (f). LOBBYIST/REGISTRANT PAC ,36,5 (f). LOBBYIST/REGISTRANT PAC ,,,,
|
41
|
+
leadership_pac,37,5 (f). LEADERSHIP PAC,37,5 (f). LEADERSHIP PAC,,,,
|
42
|
+
affiliated_committee_id_number,38,6. AFFILIATED CMTTE ID NUM,38,6. AFFILIATED CMTTE ID NUM,20,6. FEC COMMITTEE ID NUMBER,20,6. FEC COMMITTEE ID NUMBER
|
43
|
+
affiliated_committee_name,39,6. AFFILIATED CMTTE NAME,39,6. AFFILIATED CMTTE NAME,21,6. COMMITTEE NAME (Affiliated),21,6. COMMITTEE NAME (Affiliated)
|
44
|
+
affiliated_candidate_id_number,40,6. AFFILIATED CANDIDATE ID NUM,40,6. AFFILIATED CANDIDATE ID NUM,,,,
|
45
|
+
affiliated_last_name,41,6. AFFILIATED LAST NAME,41,6. AFFILIATED LAST NAME,,,,
|
46
|
+
affiliated_first_name,42,6. AFFILIATED FIRST NAME,42,6. AFFILIATED FIRST NAME,,,,
|
47
|
+
affiliated_middle_name,43,6. AFFILIATED MIDDLE NAME,43,6. AFFILIATED MIDDLE NAME,,,,
|
48
|
+
affiliated_prefix,44,6. AFFILIATED PREFIX,44,6. AFFILIATED PREFIX,,,,
|
49
|
+
affiliated_suffix,45,6. AFFILIATED SUFFIX,45,6. AFFILIATED SUFFIX,,,,
|
50
|
+
affiliated_street_1,46,6. AFFILIATED STREET 1,46,6. AFFILIATED STREET 1,22,6. STREET 1,22,6. STREET 1
|
51
|
+
affiliated_street_2,47,6. AFFILIATED STREET 2,47,6. AFFILIATED STREET 2,23,6. STREET 2,23,6. STREET 2
|
52
|
+
affiliated_city,48,6. AFFILIATED CITY,48,6. AFFILIATED CITY,24,6. CITY,24,6. CITY
|
53
|
+
affiliated_state,49,6. AFFILIATED STATE,49,6. AFFILIATED STATE,25,6. STATE,25,6. STATE
|
54
|
+
affiliated_zip_code,50,6. AFFILIATED ZIP,50,6. AFFILIATED ZIP,26,6. ZIP,26,6. ZIP
|
55
|
+
affiliated_relationship_code,51,"6. AFFILIATED RELATIONSHIP CODE",51,6. AFFILIATED RELATIONSHIP CODE,27,6. RELATIONSHIP (w/ Above Cmte),27,6. RELATIONSHIP (w/ Above Cmte)
|
56
|
+
custodian_name,,,,,29,7. IND/NAME (Custodian Name),29,7. IND/NAME (Custodian Name)
|
57
|
+
custodian_last_name,52,7. CUSTODIAN LAST NAME,52,7. CUSTODIAN LAST NAME,,,,
|
58
|
+
custodian_first_name,53,7. CUSTODIAN FIRST NAME,53,7. CUSTODIAN FIRST NAME,,,,
|
59
|
+
custodian_middle_name,54,7. CUSTODIAN MIDDLE NAME,54,7. CUSTODIAN MIDDLE NAME,,,,
|
60
|
+
custodian_prefix,55,7. CUSTODIAN PREFIX,55,7. CUSTODIAN PREFIX,,,,
|
61
|
+
custodian_suffix,56,7. CUSTODIAN SUFFIX,56,7. CUSTODIAN SUFFIX,,,,
|
62
|
+
custodian_street_1,57,7. CUSTODIAN STREET 1,57,7. CUSTODIAN STREET 1,30,7. STREET 1,30,7. STREET 1
|
63
|
+
custodian_street_2,58,7. CUSTODIAN STREET 2,58,7. CUSTODIAN STREET 2,31,7. STREET 2,31,7. STREET 2
|
64
|
+
custodian_city,59,7. CUSTODIAN CITY,59,7. CUSTODIAN CITY,32,7. CITY,32,7. CITY
|
65
|
+
custodian_state,60,7. CUSTODIAN STATE,60,7. CUSTODIAN STATE,33,7. STATE,33,7. STATE
|
66
|
+
custodian_zip_code,61,7. CUSTODIAN ZIP,61,7. CUSTODIAN ZIP,34,7. ZIP,34,7. ZIP
|
67
|
+
custodian_title,62,7. CUSTODIAN TITLE,62,7. CUSTODIAN TITLE,35,7. TITLE,35,7. TITLE
|
68
|
+
custodian_telephone,63,7. CUSTODIAN TELEPHONE,63,7. CUSTODIAN TELEPHONE,36,7. TELEPHONE,36,7. TELEPHONE
|
69
|
+
treasurer_name,,,,,37,8. IND/NAME (Treasurer),37,8. IND/NAME (Treasurer)
|
70
|
+
treasurer_last_name,64,8. TREASURER LAST NAME,64,8. TREASURER LAST NAME,,,,
|
71
|
+
treasurer_first_name,65,8. TREASURER FIRST NAME,65,8. TREASURER FIRST NAME,,,,
|
72
|
+
treasurer_middle_name,66,8. TREASURER MIDDLE NAME,66,8. TREASURER MIDDLE NAME,,,,
|
73
|
+
treasurer_prefix,67,8. TREASURER PREFIX,67,8. TREASURER PREFIX,,,,
|
74
|
+
treasurer_suffix,68,8. TREASURER SUFFIX,68,8. TREASURER SUFFIX,,,,
|
75
|
+
treasurer_street_1,69,8. TREASURER STREET 1,69,8. TREASURER STREET 1,38,8. STREET 1,38,8. STREET 1
|
76
|
+
treasurer_street_2,70,8. TREASURER STREET 2,70,8. TREASURER STREET 2,39,8. STREET 2,39,8. STREET 2
|
77
|
+
treasurer_city,71,8. TREASURER CITY,71,8. TREASURER CITY,40,8. CITY,40,8. CITY
|
78
|
+
treasurer_state,72,8. TREASURER STATE,72,8. TREASURER STATE,41,8. STATE,41,8. STATE
|
79
|
+
treasurer_zip_code,73,8. TREASURER ZIP,73,8. TREASURER ZIP,42,8. ZIP,42,8. ZIP
|
80
|
+
treasurer_title,74,8. TREASURER TITLE,74,8. TREASURER TITLE,43,8. TITLE,43,8. TITLE
|
81
|
+
treasurer_telephone,75,8. TREASURER TELEPHONE,75,8. TREASURER TELEPHONE,44,8. TELEPHONE,44,8. TELEPHONE
|
82
|
+
agent_name,,,,,45,8. IND/NAME (Designated Agent),45,8. IND/NAME (Designated Agent)
|
83
|
+
agent_last_name,76,8. AGENT LAST NAME,76,8. AGENT LAST NAME,,,,
|
84
|
+
agent_first_name,77,8. AGENT FIRST NAME,77,8. AGENT FIRST NAME,,,,
|
85
|
+
agent_middle_name,78,8. AGENT MIDDLE NAME,78,8. AGENT MIDDLE NAME,,,,
|
86
|
+
agent_prefix,79,8. AGENT PREFIX,79,8. AGENT PREFIX,,,,
|
87
|
+
agent_suffix,80,8. AGENT SUFFIX,80,8. AGENT SUFFIX,,,,
|
88
|
+
agent_street_1,81,8. AGENT STREET 1,81,8. AGENT STREET 1,46,8. STREET 1,46,8. STREET 1
|
89
|
+
agent_street_2,82,8. AGENT STREET 2,82,8. AGENT STREET 2,47,8. STREET 2,47,8. STREET 2
|
90
|
+
agent_city,83,8. AGENT CITY,83,8. AGENT CITY,48,8. CITY,48,8. CITY
|
91
|
+
agent_state,84,8. AGENT STATE,84,8. AGENT STATE,49,8. STATE,49,8. STATE
|
92
|
+
agent_zip_code,85,8. AGENT ZIP,85,8. AGENT ZIP,50,8. ZIP,50,8. ZIP
|
93
|
+
agent_title,86,8. AGENT TITLE,86,8. AGENT TITLE,51,8. TITLE,51,8. TITLE
|
94
|
+
agent_telephone,87,8. AGENT TELEPHONE,87,8. AGENT TELEPHONE,52,8. TELEPHONE,52,8. TELEPHONE
|
95
|
+
bank_name,88,9. a) BANK NAME,88,9. a) BANK NAME,53,9. IND/NAME (Bank/Depository),53,9. IND/NAME (Bank/Depository)
|
96
|
+
bank_street_1,89,9. a) BANK STREET 1,89,9. a) BANK STREET 1,54,9. STREET 1,54,9. STREET 1
|
97
|
+
bank_street_2,90,9. a) BANK STREET 2,90,9. a) BANK STREET 2,55,9. STREET 2,55,9. STREET 2
|
98
|
+
bank_city,91,9. a) BANK CITY,91,9. a) BANK CITY,56,9. CITY,56,9. CITY
|
99
|
+
bank_state,92,9. a) BANK STATE,92,9. a) BANK STATE,57,9. STATE,57,9. STATE
|
100
|
+
bank_zip_code,93,9. a) BANK ZIP,93,9. a) BANK ZIP,58,9. ZIP,58,9. ZIP
|
101
|
+
bank2_name,94,9. b) BANK NAME,94,9. b) BANK NAME,,,,
|
102
|
+
bank2_street_1,95,9. b) BANK STREET 1,95,9. b) BANK STREET 1,,,,
|
103
|
+
bank2_street_2,96,9. b) BANK STREET 2,96,9. b) BANK STREET 2,,,,
|
104
|
+
bank2_city,97,9. b) BANK CITY,97,9. b) BANK CITY,,,,
|
105
|
+
bank2_state,98,9. b) BANK STATE,98,9. b) BANK STATE,,,,
|
106
|
+
bank2_zip_code,99,9. b) BANK ZIP,99,9. b) BANK ZIP,,,,
|
data/sources/F1M.csv
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
canonical,^8.0|7.0|6.4|6.3|6.2|6.1,,^5.3|5.2|5.1|5.0|3.0,
|
2
|
+
form_type,1,FORM TYPE,1,FORM TYPE
|
3
|
+
filer_committee_id_number,2,FILER COMMITTEE ID NUMBER,2,FILER COMMITTEE ID NUMBER
|
4
|
+
committee_name,3,COMMITTEE NAME,3,COMMITTEE NAME
|
5
|
+
street_1,4,STREET 1,4,STREET 1
|
6
|
+
street_2,5,STREET 2,5,STREET 2
|
7
|
+
city,6,CITY,6,CITY
|
8
|
+
state,7,STATE,7,STATE
|
9
|
+
zip_code,8,ZIP,8,ZIP
|
10
|
+
committee_type,9,COMMITTEE TYPE,9,COMMITTEE TYPE
|
11
|
+
affiliated_date_f1_filed,10,DATE (Of Affiliation),10,AFFILIATED - DATE FORM F1 FILED
|
12
|
+
affiliated_committee_id_number,11,FEC COMMITTEE ID NUMBER,11,AFFILIATED COMMITTEE FEC ID
|
13
|
+
affiliated_committee_name,12,COMMITTEE NAME,12,AFFILIATED COMMITTEE NAME
|
14
|
+
first_candidate_id_number,13,I CANDIDATE ID NUMBER,13,FEC CANDIDATE ID NUMBER
|
15
|
+
first_candidate_name,,,14,CANDIDATE NAME
|
16
|
+
first_candidate_last_name,14,I CANDIDATE LAST NAME,,
|
17
|
+
first_candidate_first_name,15,I CANDIDATE FIRST NAME,,
|
18
|
+
first_candidate_middle_name,16,I CANDIDATE MIDDLE NAME,,
|
19
|
+
first_candidate_prefix,17,I CANDIDATE PREFIX,,
|
20
|
+
first_candidate_suffix,18,I CANDIDATE SUFFIX,,
|
21
|
+
first_candidate_office,19,I CANDIDATE OFFICE,15,CAN/OFFICE
|
22
|
+
first_candidate_state,20,I CANDIDATE STATE ,16,CAN/STATE
|
23
|
+
first_candidate_district,21,I CANDIDATE DIST,17,CAN/DIST
|
24
|
+
first_candidate_contribution_date,22,I DATE OF CONTRIBUTION,18, DATE (Of Contribution)
|
25
|
+
second_candidate_id_number,23,II CANDIDATE ID NUMBER,19,FEC CANDIDATE ID NUMBER
|
26
|
+
second_candidate_name,,,20,CANDIDATE NAME
|
27
|
+
second_candidate_last_name,24,II CANDIDATE LAST NAME,,
|
28
|
+
second_candidate_second_name,25,II CANDIDATE FIRST NAME,,
|
29
|
+
second_candidate_middle_name,26,II CANDIDATE MIDDLE NAME,,
|
30
|
+
second_candidate_prefix,27,II CANDIDATE PREFIX,,
|
31
|
+
second_candidate_suffix,28,II CANDIDATE SUFFIX,,
|
32
|
+
second_candidate_office,29,II CANDIDATE OFFICE,21,CAN/OFFICE
|
33
|
+
second_candidate_state,30,II CANDIDATE STATE ,22,CAN/STATE
|
34
|
+
second_candidate_district,31,II CANDIDATE DIST,23,CAN/DIST
|
35
|
+
second_candidate_contribution_date,32,II DATE OF CONTRIBUTION,24, DATE (Of Contribution)
|
36
|
+
third_candidate_id_number,33,III CANDIDATE ID NUMBER,25,FEC CANDIDATE ID NUMBER
|
37
|
+
third_candidate_name,,,26,CANDIDATE NAME
|
38
|
+
third_candidate_last_name,34,III CANDIDATE LAST NAME,,
|
39
|
+
third_candidate_third_name,35,III CANDIDATE FIRST NAME,,
|
40
|
+
third_candidate_middle_name,36,III CANDIDATE MIDDLE NAME,,
|
41
|
+
third_candidate_prefix,37,III CANDIDATE PREFIX,,
|
42
|
+
third_candidate_suffix,38,III CANDIDATE SUFFIX,,
|
43
|
+
third_candidate_office,39,III CANDIDATE OFFICE,27,CAN/OFFICE
|
44
|
+
third_candidate_state,40,III CANDIDATE STATE ,28,CAN/STATE
|
45
|
+
third_candidate_district,41,III CANDIDATE DIST,29,CAN/DIST
|
46
|
+
third_candidate_contribution_date,42,III DATE OF CONTRIBUTION,30, DATE (Of Contribution)
|
47
|
+
fourth_candidate_id_number,43,IV CANDIDATE ID NUMBER,31,FEC CANDIDATE ID NUMBER
|
48
|
+
fourth_candidate_name,,,32,CANDIDATE NAME
|
49
|
+
fourth_candidate_last_name,44,IV CANDIDATE LAST NAME,,
|
50
|
+
fourth_candidate_fourth_name,45,IV CANDIDATE FIRST NAME,,
|
51
|
+
fourth_candidate_middle_name,46,IV CANDIDATE MIDDLE NAME,,
|
52
|
+
fourth_candidate_prefix,47,IV CANDIDATE PREFIX,,
|
53
|
+
fourth_candidate_suffix,48,IV CANDIDATE SUFFIX,,
|
54
|
+
fourth_candidate_office,49,IV CANDIDATE OFFICE,33,CAN/OFFICE
|
55
|
+
fourth_candidate_state,50,IV CANDIDATE STATE ,34,CAN/STATE
|
56
|
+
fourth_candidate_district,51,IV CANDIDATE DIST,35,CAN/DIST
|
57
|
+
fourth_candidate_contribution_date,52,IV DATE OF CONTRIBUTION,36, DATE (Of Contribution)
|
58
|
+
fifth_candidate_id_number,53,V CANDIDATE ID NUMBER,37,FEC CANDIDATE ID NUMBER
|
59
|
+
fifth_candidate_name,,,38,CANDIDATE NAME
|
60
|
+
fifth_candidate_last_name,54,V CANDIDATE LAST NAME,,
|
61
|
+
fifth_candidate_fifth_name,55,V CANDIDATE FIRST NAME,,
|
62
|
+
fifth_candidate_middle_name,56,V CANDIDATE MIDDLE NAME,,
|
63
|
+
fifth_candidate_prefix,57,V CANDIDATE PREFIX,,
|
64
|
+
fifth_candidate_suffix,58,V CANDIDATE SUFFIX,,
|
65
|
+
fifth_candidate_office,59,V CANDIDATE OFFICE,39,CAN/OFFICE
|
66
|
+
fifth_candidate_state,60,V CANDIDATE STATE ,40,CAN/STATE
|
67
|
+
fifth_candidate_district,61,V CANDIDATE DIST,41,CAN/DIST
|
68
|
+
fifth_candidate_contribution_date,62,V DATE OF CONTRIBUTION,42, DATE (Of Contribution)
|
69
|
+
fifty_first_contributor_date,63,DATE (Of 51st Contributor),43,DATE (Of 51st Contributor)
|
70
|
+
original_registration_date,64,DATE (Of Orig Registration),44,DATE (Of Orig Registration)
|
71
|
+
requirements_met_date,65,DATE (Cmte Met Requirements),45,DATE (Cmte Met Requirements)
|
72
|
+
treasurer_name,,,46,NAME/TREASURER (as signed)
|
73
|
+
treasurer_last_name,66,TREASURER LAST NAME,,
|
74
|
+
treasurer_first_name,67,TREASURER FIRST NAME,,
|
75
|
+
treasurer_middle_name,68,TREASURER MIDDLE NAME,,
|
76
|
+
treasurer_prefix,69,TREASURER PREFIX,,
|
77
|
+
treasurer_suffix,70,TREASURER SUFFIX,,
|
78
|
+
date_signed,71,DATE SIGNED,47,DATE SIGNED
|
data/sources/F2.csv
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
canonical,^8.0|7.0|6.4,,^6.3|6.2|6.1,,^5.3|5.2|5.1|5.0,,^3.0,
|
2
|
+
form_type,1,FORM TYPE,1,FORM TYPE,1,FORM TYPE,1,FORM TYPE
|
3
|
+
candidate_id_number,2,FILER CANDIDATE ID NUMBER,2,FILER CANDIDATE ID NUMBER,2,FILER FEC CAND ID ,2,FILER FEC CAND ID
|
4
|
+
candidate_name,,,,,3,CANDIDATE NAME,3,CANDIDATE NAME
|
5
|
+
candidate_last_name,3,CANDIDATE LAST NAME,3,CANDIDATE LAST NAME,32,CANDIDATE LAST NAME,,
|
6
|
+
candidate_first_name,4,CANDIDATE FIRST NAME,4,CANDIDATE FIRST NAME,33,CANDIDATE FIRST NAME,,
|
7
|
+
candidate_middle_name,5,CANDIDATE MIDDLE NAME,5,CANDIDATE MIDDLE NAME,34,CANDIDATE MIDDLE NAME,,
|
8
|
+
candidate_prefix,6,CANDIDATE PREFIX,6,CANDIDATE PREFIX,35,CANDIDATE PREFIX,,
|
9
|
+
candidate_suffix,7,CANDIDATE SUFFIX,7,CANDIDATE SUFFIX,36,CANDIDATE SUFFIX,,
|
10
|
+
change_of_address,8,CHANGE OF ADDRESS,8,CHANGE OF ADDRESS,,,,
|
11
|
+
candidate_street_1,9,CANDIDATE STREET 1,9,CANDIDATE STREET 1,4,STREET 1,4,STREET 1
|
12
|
+
candidate_street_2,10,CANDIDATE STREET 2,10,CANDIDATE STREET 2,5,STREET 2,5,STREET 2
|
13
|
+
candidate_city,11,CANDIDATE CITY,11,CANDIDATE CITY,6,CITY,6,CITY
|
14
|
+
candidate_state,12,CANDIDATE STATE,12,CANDIDATE STATE,7,STATE,7,STATE
|
15
|
+
candidate_zip_code,13,CANDIDATE ZIP,13,CANDIDATE ZIP,8,ZIP,8,ZIP
|
16
|
+
candidate_party_code,14,CANDIDATE PARTY CODE,14,CANDIDATE PARTY CODE,9,PTY/CODE,9,PTY/CODE
|
17
|
+
candidate_office,15,CANDIDATE OFFICE,15,CANDIDATE OFFICE,10,CAN/OFFICE,10,CAN/OFFICE
|
18
|
+
candidate_state,16,CANDIDATE STATE ,16,CANDIDATE STATE ,11,CAN/STATE ,11,CAN/STATE
|
19
|
+
candidate_district,17,CANDIDATE DISTRICT,17,CANDIDATE DISTRICT,12,CAN/DIST,12,CAN/DIST
|
20
|
+
election_year,18,YEAR OF ELECTION 1900-2999,18,YEAR OF ELECTION 1900-2999,13,YEAR OF ELECTION 1900-2999,13,YEAR OF ELECTION 1900-2999
|
21
|
+
committee_id_number,19,PCC COMMITTEE ID NUMBER,19,PCC COMMITTEE ID NUMBER,14,FEC COMMITTEE ID NUMBER (PCC),14,FEC COMMITTEE ID NUMBER (PCC)
|
22
|
+
committee_name,20,PCC COMMITTEE NAME,20,PCC COMMITTEE NAME,15,COMMITTEE NAME (PCC),15,COMMITTEE NAME (PCC)
|
23
|
+
committee_street_1,21,PCC STREET 1,21,PCC STREET 1,16,STREET 1,16,STREET 1
|
24
|
+
committee_street_2,22,PCC STREET 2,22,PCC STREET 2,17,STREET 2,17,STREET 2
|
25
|
+
committee_city,23,PCC CITY,23,PCC CITY,18,CITY,18,CITY
|
26
|
+
committee_state,24,PCC STATE,24,PCC STATE,19,STATE,19,STATE
|
27
|
+
committee_zip_code,25,PCC ZIP,25,PCC ZIP,20,ZIP,20,ZIP
|
28
|
+
authorized_committee_id_number,26,AUTH COMMITTEE ID NUMBER,26,AUTH COMMITTEE ID NUMBER,21,FEC COMMITTEE ID NUMBER (Auth),21,FEC COMMITTEE ID NUMBER (Auth)
|
29
|
+
authorized_committee_name,27,AUTH COMMITTEE NAME,27,AUTH COMMITTEE NAME,22,COMMITTEE NAME (Auth),22,COMMITTEE NAME (Auth)
|
30
|
+
authorized_committee_street_1,28,AUTH STREET 1,28,AUTH STREET 1,23,STREET 1,23,STREET 1
|
31
|
+
authorized_committee_street_2,29,AUTH STREET 2,29,AUTH STREET 2,24,STREET 2,24,STREET 2
|
32
|
+
authorized_committee_city,30,AUTH CITY,30,AUTH CITY,25,CITY,25,CITY
|
33
|
+
authorized_committee_state,31,AUTH STATE,31,AUTH STATE,26,STATE,26,STATE
|
34
|
+
authorized_committee_zip_code,32,AUTH ZIP,32,AUTH ZIP,27,ZIP,27,ZIP
|
35
|
+
candidate_signature_name,,,,,28,NAME/CAN (as signed),28,NAME/CAN (as signed)
|
36
|
+
candidate_signature_last_name,33,CANDIDATE SIGNATURE LAST NAME,35,CANDIDATE SIGNATURE LAST NAME,,,,
|
37
|
+
candidate_signature_first_name,34,CANDIDATE SIGNATURE FIRST NAME,36,CANDIDATE SIGNATURE FIRST NAME,,,,
|
38
|
+
candidate_signature_middle_name,35,CANDIDATE SIGNATURE MIDDLE NAME,37,CANDIDATE SIGNATURE MIDDLE NAME,,,,
|
39
|
+
candidate_signature_prefix,36,CANDIDATE SIGNATURE PREFIX,38,CANDIDATE SIGNATURE PREFIX,,,,
|
40
|
+
candidate_signature_suffix,37,CANDIDATE SIGNATURE SUFFIX,39,CANDIDATE SIGNATURE SUFFIX,,,,
|
41
|
+
date_signed,38,DATE SIGNED,40,DATE SIGNED,29,DATE (Signed),29,DATE (Signed)
|
42
|
+
primary_personal_funds_declared,,,33,PRI PERSONAL FUNDS DECLARED,30,PRI PERSONAL FUNDS DECLARED,,
|
43
|
+
general_personal_funds_declared,,,34,GEN PERSONAL FUNDS DECLARED,31,GEN PERSONAL FUNDS DECLARED,,
|
data/sources/F24.csv
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
canonical,^8.0,,^7.0|6.4|6.3|6.2|6.1,,^5.0|5.1|5.2|5.3,,^3,
|
2
|
+
form_type,1,FORM TYPE,1,FORM TYPE,1,FORM TYPE,1,FORM TYPE
|
3
|
+
filer_committee_id_number,2,FILER COMMITTEE ID NUMBER,2,FILER COMMITTEE ID NUMBER,2,FILER COMMITTEE ID NUMBER,2,FILER FEC CMTE ID
|
4
|
+
report_type,3,REPORT TYPE {24/48 Hour},3,REPORT TYPE {24/48 Hour},11,REPORT TYPE,,
|
5
|
+
original_amendment_date,4,ORIGINAL AMENDMENT DATE,,
|
6
|
+
committee_name,5,COMMITTEE NAME,4,COMMITTEE NAME,3,COMMITTEE NAME,3,COMMITTEE NAME
|
7
|
+
street_1,6,STREET 1,5,STREET 1,4,STREET 1,4,STREET 1
|
8
|
+
street_2,7,STREET 1,6,STREET 2,5,STREET 2,5,STREET 2
|
9
|
+
city,8,CITY,7,CITY,6,CITY,6,CITY
|
10
|
+
state,9,STATE,8,STATE,7,STATE,7,STATE
|
11
|
+
zip_code,10,ZIP,9,ZIP,8,ZIP,8,ZIP
|
12
|
+
treasurer_name,,,,9,NAME/TREASURER (as signed),9,NAME/TREASURER (as signed)
|
13
|
+
treasurer_last_name,11,TREASURER LAST NAME,10,TREASURER LAST NAME,,,,
|
14
|
+
treasurer_first_name,12,TREASURER FIRST NAME,11,TREASURER FIRST NAME,,,,
|
15
|
+
treasurer_middle_name,13,TREASURER MIDDLE NAME,12,TREASURER MIDDLE NAME,,,,
|
16
|
+
treasurer_prefix,14,TREASURER PREFIX,13,TREASURER PREFIX,,,,
|
17
|
+
treasurer_suffix,15,TREASURER SUFFIX,14,TREASURER SUFFIX,,,,
|
18
|
+
date_signed,16,DATE SIGNED,15,DATE SIGNED,10,DATE (Signed),10,DATE (Signed)
|
data/sources/F3.csv
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
canonical,^8.0|7.0|6.4,,^6.3|6.2|6.1,,^5.3|5.2|5.1|5.0,,^3.0,
|
data/sources/F3L.csv
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
canonical,^8.0|7.0|6.4
|
2
|
+
form_type,1,FORM TYPE
|
3
|
+
filer_committee_id_number,2,FILER COMMITTEE ID NUMBER
|
4
|
+
committee_name,3,COMMITTEE NAME
|
5
|
+
change_of_address,4,CHANGE OF ADDRESS
|
6
|
+
street_1,5,STREET 1
|
7
|
+
street_2,6,STREET 2
|
8
|
+
city,7,CITY
|
9
|
+
state,8,STATE
|
10
|
+
zip_code,9,ZIP
|
11
|
+
report_code,12,REPORT CODE
|
12
|
+
election_date,13,DATE OF ELECTION
|
13
|
+
election_state,10,ELECTION STATE
|
14
|
+
election_district,11,ELECTION DISTRICT
|
15
|
+
coverage_from_date,16,COVERAGE FROM DATE
|
16
|
+
coverage_through_date,17,COVERAGE THROUGH DATE
|
17
|
+
semi_annual_period,15,SEMI-ANNUAL PERIOD - Sect 5(c) or (d)
|
18
|
+
semi_annual_period_jan_june,18,SEMI-ANNUAL JAN-JUN - Sect 6(b)
|
19
|
+
semi_annual_period_jul_dec,19,SEMI-ANNUAL JUL-DEC - Sect 6(b)
|
20
|
+
quarterly_monthly_bundled_contributions,20,QTR/MON/POST BUNDLED CONTRIBUTIONS
|
21
|
+
semi_annual_bundled_contributions,21,SEMI-ANNUAL BUNDLED CONTRIBS
|
22
|
+
treasurer_last_name,22,TREASURER LAST NAME
|
23
|
+
treasurer_first_name,23,TREASURER FIRST NAME
|
24
|
+
treasurer_middle_name,24,TREASURER MIDDLE NAME
|
25
|
+
treasurer_prefix,25,TREASURER PREFIX
|
26
|
+
treasurer_suffix,26,TREASURER SUFFIX
|
27
|
+
date_signed,27,DATE SIGNED
|