Python wrapper for all FamilySearch APIs
Project description
python-fs-stack provides a Python package that simplifies access to the FamilySearch REST-style API.
- Home Page:
- Source Code:
Dependencies
Python 2.4 or later
simplejson, if using Python older than 2.6
wsgi_intercept 0.5.0 or later (only required to run test suite)
Installation
Using pip:
pip install python-fs-stack
or using easy_install (from setuptools or distribute):
easy_install python-fs-stack
or (after downloading manually):
python setup.py install
Example Usage
First, import the FamilySearch class:
from familysearch import FamilySearch
Authenticating with FamilySearch
python-fs-stack supports several ways of initiating a session with FamilySearch, including Basic Authentication, OAuth, and resuming a previous session.
Log in immediately with Basic Authentication:
fs = FamilySearch('ClientApp/1.0', 'developer_key', 'username', 'password')
Log in in a separate step with Basic Authentication:
fs = FamilySearch('ClientApp/1.0', 'developer_key') fs.login('username', 'password')
Log in in two steps with Basic Authentication:
fs = FamilySearch('ClientApp/1.0', 'developer_key') fs.initialize() fs.authenticate('username', 'password')
Log in with OAuth:
import webbrowser fs = FamilySearch('ClientApp/1.0', 'developer_key') fs.request_token() webbrowser.open(fs.authorize()) # [Enter username and password into browser window that opens] verifier = [verifier from resulting web page] fs.access_token(verifier)
Resume a previous session:
fs = FamilySearch('ClientApp/1.0', 'developer_key', session='session_id')
Use the production system instead of the reference system:
fs = FamilySearch('ClientApp/1.0', 'developer_key', base='https://api.familysearch.org')
Maintaining and Ending a Session
Keep the current session active:
fs.session()
Log out:
fs.logout()
Accessing Family Tree Information
Print current user’s family tree details:
print fs.person()
To specify a person ID to retrieve, pass the ID as an argument:
print fs.person('ABCD-123')
To print multiple family tree entries, pass a list of IDs as an argument. To pass additional parameters to the API, simply pass them as named arguments:
print fs.person(['ABCD-123', 'EFGH-456'], events='all', children='all')
Print the latest version of a list of persons (this request is more lightweight than a full person request, so it supports more IDs at once):
for person in fs.version(['ABCD-123', 'EFGH-456']): print person['id'], person['version']
Print the contents of a persona:
print fs.persona('ABCD-123')
Print current user’s pedigree:
print fs.pedigree()
Format the pedigree output more nicely:
import pprint pprint.pprint(fs.pedigree())
Searching for Persons in the Family Tree
Search for a male named John Smith:
results = fs.search(givenName='John', familyName='Smith', gender='Male', maxResults=10)
Retrieve the second page of the previous search:
more_results = fs.search(contextId=results[0]['contextId'], maxResults=10, startIndex=10)
Search for an exact match for John Smith (use an options dict to specify options with periods in their names):
results = fs.search(options={'givenName.exact': 'John', 'familyName.exact': 'Smith'}, gender='Male', maxResults=10)
Searching for Possible Duplicates
Search for possible duplicates of a person:
matches = fs.match('ABCD-123')
Compute match score between two persons:
match = fs.match('ABCD-123', id='EFGH-456')
Search for possible duplicates matching specified parameters:
matches = fs.match(givenName='John', familyName='Smith', gender='Male', birthDate='1900', birthPlace='USA', deathDate='1950', deathPlace='USA')
Standardizing Places, Names, and Dates
Look up a place by name:
place = fs.place(place='paris')
Look up a place by ID:
place = fs.place(5061509)
Look up a list of places by ID:
places = fs.place([5061509, 5061446])
Look up a place by name, showing only the most likely result, returning results in another locale:
place = fs.place(place='germany', filter=True, locale='de')
Standardize a name:
name = fs.name('John Smith')
Standardize a list of names:
names = fs.name(['John Smith', 'Jane Doe'])
Standardize a date:
date = fs.date('1-1-11')
Standardize a list of dates:
dates = fs.date(['1-1-11', 'december 31 1999'])
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
File details
Details for the file python-fs-stack-0.2.zip
.
File metadata
- Download URL: python-fs-stack-0.2.zip
- Upload date:
- Size: 37.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
bc6ddaaf01ff8766ce4616518b90288e14f4c2b2f69710641bb49c22ecce9016
|
|
MD5 |
b26cf09ff6d5a6d046ae8e6ec1620280
|
|
BLAKE2b-256 |
7af93a698753346576eb282cbdf31599870bbeb0689d1387890914c18ee5639c
|
File details
Details for the file python-fs-stack-0.2.tar.gz
.
File metadata
- Download URL: python-fs-stack-0.2.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6c274bc1553447e6647c45dccbc76d2be4ca80d314c88844b33337b66f9772ad
|
|
MD5 |
6d365d50d88467114a66d63125357007
|
|
BLAKE2b-256 |
99d4823fca60e6da187b2bf89e945291af234399a3dd31a9d798adac3e69f980
|