2 # -*- coding: utf-8 -*-
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
19 from setuptools
import setup
, find_packages
20 from setuptools
.command
.install
import install
23 class Install_osm_im(install
):
24 """Generation of .py files from yang models"""
25 model_dir
= "models/yang"
28 def pipinstall(self
, package
):
29 """pip install for executable dependencies"""
30 subprocess
.call([sys
.executable
, "-m", "pip", "install", package
])
33 self
.pipinstall('pyang')
34 self
.pipinstall('pyangbind')
36 print("Using dir {}/{} for python artifacts".format(os
.getcwd(), self
.im_dir
))
37 path
= "{}/{}".format(os
.getcwd(), self
.im_dir
)
39 protoc_command
= ["make", "models"]
40 if subprocess
.call(protoc_command
) != 0:
43 # To ensure generated files are copied to the python installation folder
44 install_path
= "{}{}".format(self
.install_lib
, self
.im_dir
)
45 self
.copy_tree(self
.im_dir
, install_path
)
46 if os
.path
.isfile("{}/etsi-nfv-nsd.py".format(install_path
)):
48 "{}/etsi-nfv-nsd.py".format(install_path
), "{}/etsi_nfv_nsd.py".format(install_path
)
50 if os
.path
.isfile("{}/etsi-nfv-vnfd.py".format(install_path
)):
52 "{}/etsi-nfv-vnfd.py".format(install_path
), "{}/etsi_nfv_vnfd.py".format(install_path
)
60 description
='OSM Information Model',
61 long_description
=open('README.rst').read(),
62 version_command
=('git describe --tags --long --dirty --match v*', 'pep440-git-full'),
64 author_email
='osmsupport@etsi.org',
65 packages
=find_packages(),
66 include_package_data
=True,
67 setup_requires
=['setuptools-version-command'],
68 test_suite
='nose.collector',
69 url
='https://osm.etsi.org/gitweb/?p=osm/IM.git;a=summary',
71 cmdclass
={'install': Install_osm_im
},