Metadata-Version: 2.1
Name: fundNSF
Version: 0.0.2
Summary: Searches National Science Foundation awards database
Home-page: https://github.com/C-NoBlok/fundNSF
Author: Jacob Noble
Author-email: jacob.a.noble@gmail.com
License: UNKNOWN
Keywords: api,National Science Foundation,NSF
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: requests

# FundNSF
Python wrapper for National Science Foundations (NSF) award funding API.
FundNSF is for performing searches on the National Science Foundations
(NSF) awards database through their api.

link: https://www.research.gov/common/webapi/awardapisearch-v1.htm

## Installation

installation through pip is recommended:

`pip install fundNSF`

## Example

          from fundNSF import FundNSF

          nsf = FundNSF()
          nsf.set_fields(abstractText=True)
          nsf.set_params(dateStart='01/01/2017', dateEnd='12/31/2017') # enter date as 'mm/dd/yyyy'
          data = nsf.keyword_search('nano') #returns a Dictionary
          print(data['title'][0])

          award_data = nsf.id_search(df['id'][0])
          print(award_data['abstractText'])


### Fields retrieved from search by default

            'id': True,
            'title': True,
            'agency' : True,
            'awardeeCity' : True,
            'awardeeName' : True,
            'awardeeStateCode' : True,
            'date' : True,
            'fundsObligatedAmt' : True,
            'piFirstName' : True,
            'piLastName' : True,


#### Other retrievable fields

            'offset' : False
            'awardeeCountryCode' : False,
            'awardeeCounty' : False,
            'awardeeDistrictCode' : False,
            'awardeeZipCode' : False,
            'cfdaNumber' : False,
            'coPDPI' : False,
            'startDate' : False,
            'expDate' : False,
            'estimatedTotalAmt' : False,
            'fundsObligatedAmt' : True,
            'dunsNumber' : False,
            'fundProgramName' : False,
            'parentDunsNumber' : False,
            'pdPIName' : False,
            'perfCity' : False,
            'perfCountryCode' : False,
            'perfCounty' : False,
            'perfDistrictCode' : False,
            'perfLocation' : False,
            'perfStateCode' : False,
            'perfZipCode' : False,
            'poName' : False,
            'primaryProgram' : False,
            'transType' : False,
            'awardee' : False,
            'poPhone' : False,
            'poEmail' : False,
            'awardeeAddress' : False,
            'perfAddress' : False,
            'publicationResearch' : False,
            'publicationConference' : False,
            'fundAgencyCode' : False,
            'awardAgencyCode' : False,
            'projectOutComesReport' : False,
            'abstractText' : False,
            'piMiddeInitial' : False,
            'piLastName' : True,
            'piPhone' : False,
            'piEmail' : False



### Search Parameters


More search parameters can be found at
https://www.research.gov/common/webapi/awardapisearch-v1.htm#request-parameters-notes


          'offset': None, #Record offset -> page cfdaNumber
          'agency': None, # 'NSF' or 'NASA'
          'dateStart': None, # Start date for award date to search (ex. 12/31/2012)
          'dateEnd': None, #End date for award date to search mm/dd/yyyy
          'startDateStart': None, #Start date for award start date to search
          'startDateEnd' : None, #End date for award start date to search
          'expDateStart' : None, #start date for award exp date to search
          'expDateEnd' : None, #end date for award exp date to search
          'estimatedTotalAmtFrom' : None,
          'estimatedTotalAmtTo' : None,
          'estimatedObligatedAmtFrom' : None,
          'estimatedObligatedAmtTo' : None,
          'awardeeStateCode' : None,
          'awardeeName' : None


## Methods defined here:

          __init__(self)
                    Initialize self.  See help(type(self)) for accurate signature.


#### assemble_id_url(self, award_id)

Takes award_id and returnds a request urllib using fields and params settings


          assemble_id_url(award_id)
                    return string


####   assemble_kw_url(self, keywords)

Takes list of keywords and returns a request urllib using fields param settings

          assemble_url(param_dict)
                    return('request_url')

#### build_field_request(self)

builds url section for requesting Fields

          build_field_request()
                    returns string

#### build_param_request(self)

builds url section for search parameters

          build_param_request()
                    returns string

#### construct_data_xml(self, xml_file_list)

Parses list of .xml data file objects using xml.eTree.ElementTree
package returns dictionary of values.

          onstruct_data_xml(xml_file_list)
                    returns dictionary

#### get_fields(self)
returns search fields dictionary

#### get_params(self)
returns search parameter dictionary

#### id_search(self, award_id)
Takes award_id and returns a dictionary containing information on
that award using the parameter and field dictionaries

          id_search(award_id):
                    return dict

#### keyword_search(self, *args)
takes list of keywords to search nsf awards database for

          get_keywords_data(['keywords'],
                             abstractText=False)
                    return data_dictionary

#### reset(self)
Resets the fields and params dictionary back to default

          reset_fields()
                    return None

#### send_request_xml(self, request_url)
sends request to NSF Database and returns xml file object

          send_request('request_url')
                    return xml_file_obj

#### set_fields(self, **kwargs)
Takes boolean Keyword arguments for fields to be retrieved during the search

          sef_fields(abstractText=True)
                    return

visit: https://www.research.gov/common/webapi/awardapisearch-v1.htm
for detailed discription of search fields

#### set_params(self, **kwargs)
Takes Keyword arguments for search parameters being used

          set_params(dateStart='01/01/2017',
                      dateEnd='12/31/2017',
                      awardeeStateCode='WI')

visit: https://www.research.gov/common/webapi/awardapisearch-v1.htm
for better discription of search parameters


