@ -14,17 +14,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================
""" setup _ package."""
""" setup package."""
import os
import stat
from setuptools import setup , find_packages
from setuptools . command . egg_info import egg_info
from setuptools . command . build_py import build_py
version = ' 0.1.0 '
author = ' The MindSpore Authors '
author_email = ' contact@mindspore.cn '
home_page = ' https://www.mindspore.cn '
backend_policy = os . getenv ( ' BACKEND_POLICY ' )
commit_id = os . getenv ( ' COMMIT_ID ' ) . replace ( " \n " , " " )
@ -33,56 +31,70 @@ package_name = os.getenv('MS_PACKAGE_NAME').replace("\n", "")
pwd = os . path . dirname ( os . path . realpath ( __file__ ) )
pkg_dir = os . path . join ( pwd , ' build/package ' )
def write_version ( file ) :
def _read_file ( filename ) :
with open ( os . path . join ( pwd , filename ) ) as f :
return f . read ( )
readme = _read_file ( ' README.md ' )
release = _read_file ( ' RELEASE.md ' )
def _write_version ( file ) :
file . write ( " __version__ = ' {} ' \n " . format ( version ) )
def write_config ( file ) :
def _write_config ( file ) :
file . write ( " __backend__ = ' {} ' \n " . format ( backend_policy ) )
def write_commit_file ( file ) :
def _write_commit_file ( file ) :
file . write ( " __commit_id__ = ' {} ' \n " . format ( commit_id ) )
def build_depends ( ) :
def build_dependencies ( ) :
""" generate python file """
version_file = os . path . join ( p wd, ' build/package/ mindspore' , ' version.py ' )
version_file = os . path . join ( p kg_dir, ' mindspore' , ' version.py ' )
with open ( version_file , ' w ' ) as f :
write_version( f )
_ write_version( f )
version_file = os . path . join ( pwd , ' mindspore / ' , ' version.py ' )
version_file = os . path . join ( pwd , ' mindspore ' , ' version.py ' )
with open ( version_file , ' w ' ) as f :
write_version( f )
_ write_version( f )
config_file = os . path . join ( p wd, ' build/package/ mindspore' , ' default_config.py ' )
config_file = os . path . join ( p kg_dir, ' mindspore' , ' default_config.py ' )
with open ( config_file , ' w ' ) as f :
write_config( f )
_ write_config( f )
config_file = os . path . join ( pwd , ' mindspore / ' , ' default_config.py ' )
config_file = os . path . join ( pwd , ' mindspore ' , ' default_config.py ' )
with open ( config_file , ' w ' ) as f :
write_config( f )
_ write_config( f )
commit_file = os . path . join ( p wd, ' build/package/ mindspore' , ' .commit_id ' )
commit_file = os . path . join ( p kg_dir, ' mindspore' , ' .commit_id ' )
with open ( commit_file , ' w ' ) as f :
write_commit_file( f )
_ write_commit_file( f )
commit_file = os . path . join ( pwd , ' mindspore / ' , ' .commit_id ' )
commit_file = os . path . join ( pwd , ' mindspore ' , ' .commit_id ' )
with open ( commit_file , ' w ' ) as f :
write_commit_file ( f )
descriptions = ' An AI computing framework that supports development for AI applications in all scenarios. '
requires = [
' numpy >= 1.17.0 ' ,
' protobuf >= 3.8.0 ' ,
' asttokens >= 1.1.13 ' ,
' pillow >= 6.2.0 ' ,
' scipy == 1.3.3 ' ,
' easydict >= 1.9 ' ,
' sympy >= 1.4 ' ,
' cffi >= 1.13.2 ' ,
' decorator >= 4.4.0 '
] ,
_write_commit_file ( f )
package_datas = {
build_dependencies ( )
required_package = [
' numpy >= 1.17.0 ' ,
' protobuf >= 3.8.0 ' ,
' asttokens >= 1.1.13 ' ,
' pillow >= 6.2.0 ' ,
' scipy == 1.3.3 ' ,
' easydict >= 1.9 ' ,
' sympy >= 1.4 ' ,
' cffi >= 1.13.2 ' ,
' decorator >= 4.4.0 '
]
package_data = {
' ' : [
' *.so* ' ,
' lib/*.so* ' ,
@ -91,7 +103,6 @@ package_datas = {
]
}
build_depends ( )
def update_permissions ( path ) :
"""
@ -103,20 +114,25 @@ def update_permissions(path):
for dirpath , dirnames , filenames in os . walk ( path ) :
for dirname in dirnames :
dir_fullpath = os . path . join ( dirpath , dirname )
os . chmod ( dir_fullpath , stat . S_IREAD | stat . S_IWRITE | stat . S_IEXEC | stat . S_IRGRP | stat . S_IXGRP )
os . chmod ( dir_fullpath , stat . S_IREAD | stat . S_IWRITE |
stat . S_IEXEC | stat . S_IRGRP | stat . S_IXGRP )
for filename in filenames :
file_fullpath = os . path . join ( dirpath , filename )
os . chmod ( file_fullpath , stat . S_IREAD )
class EggInfo ( egg_info ) :
""" Egg info. """
def run ( self ) :
super ( ) . run ( )
egg_info_dir = os . path . join ( pkg_dir , ' mindspore.egg-info ' )
update_permissions ( egg_info_dir )
class BuildPy ( build_py ) :
""" BuildPy. """
def run ( self ) :
super ( ) . run ( )
mindspore_dir = os . path . join ( pkg_dir , ' build ' , ' lib ' , ' mindspore ' )
@ -124,21 +140,46 @@ class BuildPy(build_py):
mindspore_dir = os . path . join ( pkg_dir , ' build ' , ' lib ' , ' akg ' )
update_permissions ( mindspore_dir )
setup (
python_requires = ' >=3.7 ' ,
name = package_name ,
version = version ,
author = author ,
author_email = author_email ,
url = home_page ,
author = ' The MindSpore Authors ' ,
author_email = ' contact@mindspore.cn ' ,
url = ' https://www.mindspore.cn ' ,
download_url = ' https://gitee.com/mindspore/mindspore/tags ' ,
project_urls = {
' Sources ' : ' https://gitee.com/mindspore/mindspore ' ,
' Issue Tracker ' : ' https://gitee.com/mindspore/mindspore/issues ' ,
} ,
description = ' MindSpore is a new open source deep learning training/inference '
' framework that could be used for mobile, edge and cloud scenarios. ' ,
long_description = " \n \n " . join ( [ readme , release ] ) ,
packages = find_packages ( ) ,
package_data = package_datas ,
package_data = package_data ,
include_package_data = True ,
cmdclass = {
' egg_info ' : EggInfo ,
' build_py ' : BuildPy ,
} ,
install_requires = requires ,
description = descriptions ,
python_requires = ' >=3.7 ' ,
install_requires = required_package ,
classifiers = [
' Development Status :: 4 - Beta ' ,
' Environment :: Console ' ,
' Intended Audience :: Science/Research ' ,
' Intended Audience :: Developers ' ,
' License :: OSI Approved :: Apache Software License ' ,
' Programming Language :: Python :: 3 :: Only ' ,
' Programming Language :: Python :: 3.7 ' ,
' Programming Language :: Python :: 3.8 ' ,
' Programming Language :: C++ ' ,
' Topic :: Scientific/Engineering ' ,
' Topic :: Scientific/Engineering :: Artificial Intelligence ' ,
' Topic :: Software Development ' ,
' Topic :: Software Development :: Libraries ' ,
' Topic :: Software Development :: Libraries :: Python Modules ' ,
] ,
license = ' Apache 2.0 ' ,
keywords = ' mindspore machine learning ' ,
)