##// END OF EJS Templates
Update config files
Update config files

File last commit:

r0:b84e1135c2c4
r4:e8469ab3bca7
Show More
setup.py
125 lines | 5.0 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
#
# This is a python DistUtils setup file for the
# Madrigal Python API.
#
# This Python module exists as an API to the madrigal
# database. Much of its functionality comes from
# the underlying C API layer written by John Holt
# and Bill Rideout.
#
# To build :
#
# 1. Be sure $MADROOT is set (at MLH, set to /opt/madrigal)
# 2. python setup.py build
#
# To install :
#
# 1. Be sure $MADROOT is set (at MLH, set to /opt/madrigal)
# 2. python setup.py install
#
import os, sys
import configparser
import io
import numpy
from setuptools import setup, Extension
# function to edit madrigal/metadata_original.py, substituting in values
# from madrigal.cfg in order to create metadata.py
# Also modifies __bgReport_original.py to create __bgReport.py
def createMetadataPyFile():
# get data from madrigal.cfg
madConfFile = open('../../madrigal.cfg', 'r')
# create Parser using standard module ConfigParser
parser = configparser.ConfigParser()
# read madrigal.cfg into a StringIO with "[madrigal]\n" section heading prepended
strMadConfFile = io.StringIO("[madrigal]\n" + madConfFile.read())
# parse StringIO madrigal.cfg
parser.read_string(strMadConfFile.getvalue())
# open metadata_original.py
metadataOrgFile = open('madrigal/metadata_original.py', 'r')
# read file into string
metadataStr = io.StringIO(metadataOrgFile.read()).getvalue()
# substitute all values - order from longest to shortest for MADSERVER
metadataStr = metadataStr.replace('MADSERVERROOT', parser.get("madrigal", 'MADSERVERROOT'))
metadataStr = metadataStr.replace('MADSERVER', parser.get("madrigal", 'MADSERVER'))
metadataStr = metadataStr.replace('MADROOT', parser.get("madrigal", 'MADROOT'))
metadataStr = metadataStr.replace('SITEID', parser.get("madrigal", 'SITEID'))
metadataStr = metadataStr.replace('HTMLSTYLE', parser.get("madrigal", 'HTMLSTYLE'))
metadataStr = metadataStr.replace('INDEXHEAD', parser.get("madrigal", 'INDEXHEAD'))
metadataStr = metadataStr.replace('CONTACT', parser.get("madrigal", 'CONTACT'))
metadataStr = metadataStr.replace('MAILSERVER', parser.get("madrigal", 'MAILSERVER'))
# substitute MAXGLOBALQUERIES only if it exists, otherwise set to blank
if parser.has_option("madrigal", 'MAXGLOBALQUERIES'):
metadataStr = metadataStr.replace('MAXGLOBALQUERIES', parser.get("madrigal", 'MAXGLOBALQUERIES'))
else:
metadataStr = metadataStr.replace('MAXGLOBALQUERIES', '2')
# substitute MAXTEMPREPORTS only if it exists, otherwise set to blank
if parser.has_option("madrigal", 'MAXTEMPREPORTS'):
metadataStr = metadataStr.replace('MAXTEMPREPORTS', parser.get("madrigal", 'MAXTEMPREPORTS'))
else:
metadataStr = metadataStr.replace('MAXTEMPREPORTS', '2')
# write new string to metadata.py
metadataNewFile = open('madrigal/metadata.py', 'w')
metadataNewFile.write(metadataStr)
metadataNewFile.close()
metadataOrgFile.close()
# close madrigal.cfg
madConfFile.close()
# make sure MADROOT/eggs exists and is writable by all - for django wsgi
eggsDir = '../../eggs'
if not os.access(eggsDir, os.R_OK):
os.mkdir(eggsDir)
os.chmod(eggsDir, 0o777)
# call the function above
createMetadataPyFile()
setup(name="madrigal",
version="3.2.4",
description="Madrigal Python API - now uses python 3",
author="Bill Rideout",
author_email="brideout@mit.edu",
url="http://www.haystack.mit.edu/~brideout/",
license='MIT',
py_modules=['madrigal.admin', 'madrigal.cedar', 'madrigal.data', 'madrigal.derivation',
'madrigal.isprint', 'madrigal.metadata', 'madrigal.openmadrigal',
'madrigal.ui.madrigalPlot', 'madrigal.ui.userData', 'madrigal.ui.web'],
ext_modules=[Extension("madrigal/_Madrec",
["madrigal/_Madrec.c"],
include_dirs=[os.environ['MADROOT'] + "/source/madc/include",
os.environ['MADROOT'] + "/source",
numpy.get_include()],
library_dirs =[os.environ['MADROOT'] +"/lib"],
runtime_library_dirs = [os.environ['MADROOT'] + "/lib"],
libraries=["madrec","geo"]
),
Extension("madrigal/_derive",
["madrigal/_derive.c"],
include_dirs=[os.environ['MADROOT'] + "/source/madc/include",
os.environ['MADROOT'] + "/source",
numpy.get_include()],
library_dirs =[os.environ['MADROOT'] +"/lib"],
runtime_library_dirs = [os.environ['MADROOT'] + "/lib"],
libraries=["madrec","geo"]
)
]
)