Updated membership directory tool - mlsmem2dir

Some discussions just don't fit into a well defined box. Use this forum to discuss general topics and issues revolving around the Church and the technology offerings we use and share.
New Member
Posts: 14
Joined: Mon Aug 04, 2008 6:29 am
Location: Cedar Hills, Utah

Updated membership directory tool - mlsmem2dir

Postby davebailey » Sun Feb 01, 2009 4:14 pm


I wanted to inform the forums that I've updated the MLS Membership to Directory tool (mlsmem2dir) that can import Membership.csv MLS export files and turn them into customized membership directories for general ward and ward leadership use.

It's a command-line tool that works on Linux, Windows, and Mac OS X.

I've included instructions for installation on Linux and Windows.

You can find out more at: http://ldsadmin.org

The new changes:

A new release of the MLS membership to directory tool has been completed. Version 2.5 now:
* Windows, Linux, and Mac OS X now supported.
* supports Python 2.6.x and 3.0.x now.
* Added query capability to show only matching names from directory.
* cleaned up option processing.
* No longer shows head of house aged under 18 if child option not selected.

From the USAGE file:

Usage: mlsmem2dir.py [OPTION] <mls-export.csv>

NOTICE: All LDS church data is for LDS church use only.
No personal, business, or political use is allowed.

<mls-export.csv> This is a membership export file from MLS.

--version show program's version number and exit
-h, --help show this help message and exit
-a, --address include address, city, state/province, and postal code
-b, --abbreviate abbreviate address to street 1, City(1 char)Postal(2
-c, --children show other members of household (besides HoH & spouse)
-d, --detail include age, sex, and household position (household
position: H=head of house, S=spouse, O=other)
-e, --email include first family email address
-f, --full use full names instead of preferred names
-l, --last show last names which differ from the Household last
-n, --normalize normalize addresses and phone numbers to standard
forms with proper capitalization and standard postal
abbreviations (Road = Rd, Apartment = Apt, etc.)
-p, --phone include phone number
-q QUERY, --query=QUERY
query directory for names matching QUERY string
-s, --strip strip all middle names and initials- first and last
only WARNING: This will strip off unhyphenated two-
part first names. "Sarah Anne" becomes "Sarah". "J T"
becomes "J".
-t, --tab output tab delimited information for spreadsheets or
Excluded list of membership record numbers, with one
number per line in the format "000-0000-0000
name/note". Any record matching a number is excluded.
Names/notes are ignored in processing.

From the README file:

The MLSMem2Dir or MLS Membership to Directory tool takes an MLS Membership export and converts it into various membership directories which can be put into spreadsheets or word processors to build compact or specialized directories.

It is a command-line, console-based tool, so you'll need a basic understanding of the command line or command shell to utilize it.

One quick example of what it can do is to process a Membership.csv file from MLS in the following manner:

Directory including all parents and children first and last preferred names, a normalized phone number, and a normalized, abbreviated address, also show any members of the family with different last names than the head-of-house in a tab-delimited format.

mlsmem2dir.py -abclnpst Membership.csv

Another example is to generate a brief list of only adults by first and last preferred name, and an abbreviated and normalized address and phone number in tab-delimited format. I use this for creating ward directories myself.

mlsmem2dir.py -abnpst Membership.csv

For leadership, I also generate a list showing all members of the family, including sex, age, and household position. This example shows only first and last preferred names and displays any members of the family with different last names.

mlsmem2dir.py -cdlst Membership.csv

On any of these commands, if you want the output to go to a file instead of the screen, just use a "greater-than symbol" following by a filename as shown in the example below:

mlsmem2dir.py Membership.csv > output-file.txt

You can also search a Membership.csv file like a database to find a phone number or address. An example is:

mlsmem2dir.py -abcdelnp -q LASTNAME Membership.csv

...where LASTNAME is a name of an individual in the ward. Only the information for matching households will be shown.


Please try it out and post feedback and bugs on the Sourceforge development site.



Return to “General Discussions”

Who is online

Users browsing this forum: No registered users and 1 guest