Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yara-python
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fact-depend
yara-python
Commits
729288fe
Commit
729288fe
authored
May 16, 2017
by
plusvic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Setup appveyor
parent
ef50a105
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
461 additions
and
2 deletions
+461
-2
appveyor.yml
appveyor.yml
+140
-0
install.ps1
appveyor/install.ps1
+229
-0
run_with_env.cmd
appveyor/run_with_env.cmd
+88
-0
dev-requirements.txt
dev-requirements.txt
+2
-0
setup.cfg
setup.cfg
+2
-2
No files found.
appveyor.yml
0 → 100755
View file @
729288fe
environment
:
global
:
# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
# /E:ON and /V:ON options are not enabled in the batch script intepreter
# See: http://stackoverflow.com/a/13751649/163740
CMD_IN_ENV
:
"
cmd
/E:ON
/V:ON
/C
.
\\
appveyor
\\
run_with_env.cmd"
matrix
:
# Python 2.7.10 is the latest version and is not pre-installed.
-
PYTHON
:
"
C:
\\
Python27.10"
PYTHON_VERSION
:
"
2.7.10"
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python27.10-x64"
PYTHON_VERSION
:
"
2.7.10"
PYTHON_ARCH
:
"
64"
# Pre-installed Python versions, which Appveyor may upgrade to
# a later point release.
# See: http://www.appveyor.com/docs/installed-software#python
-
PYTHON
:
"
C:
\\
Python27"
PYTHON_VERSION
:
"
2.7.x"
# currently 2.7.9
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python27-x64"
PYTHON_VERSION
:
"
2.7.x"
# currently 2.7.9
PYTHON_ARCH
:
"
64"
-
PYTHON
:
"
C:
\\
Python33"
PYTHON_VERSION
:
"
3.3.x"
# currently 3.3.5
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python33-x64"
PYTHON_VERSION
:
"
3.3.x"
# currently 3.3.5
PYTHON_ARCH
:
"
64"
-
PYTHON
:
"
C:
\\
Python34"
PYTHON_VERSION
:
"
3.4.x"
# currently 3.4.3
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python34-x64"
PYTHON_VERSION
:
"
3.4.x"
# currently 3.4.3
PYTHON_ARCH
:
"
64"
# Python versions not pre-installed
# Python 2.6.6 is the latest Python 2.6 with a Windows installer
# See: https://github.com/ogrisel/python-appveyor-demo/issues/10
-
PYTHON
:
"
C:
\\
Python266"
PYTHON_VERSION
:
"
2.6.6"
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python266-x64"
PYTHON_VERSION
:
"
2.6.6"
PYTHON_ARCH
:
"
64"
-
PYTHON
:
"
C:
\\
Python35"
PYTHON_VERSION
:
"
3.5.0"
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python35-x64"
PYTHON_VERSION
:
"
3.5.0"
PYTHON_ARCH
:
"
64"
# Major and minor releases (i.e x.0.0 and x.y.0) prior to 3.3.0 use
# a different naming scheme.
-
PYTHON
:
"
C:
\\
Python270"
PYTHON_VERSION
:
"
2.7.0"
PYTHON_ARCH
:
"
32"
-
PYTHON
:
"
C:
\\
Python270-x64"
PYTHON_VERSION
:
"
2.7.0"
PYTHON_ARCH
:
"
64"
install
:
# If there is a newer build queued for the same PR, cancel this one.
# The AppVeyor 'rollout builds' option is supposed to serve the same
# purpose but it is problematic because it tends to cancel builds pushed
# directly to master instead of just PR builds (or the converse).
# credits: JuliaLang developers.
-
ps
:
if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }
-
ECHO "Filesystem root:"
-
ps
:
"
ls
\"
C:/
\"
"
-
ECHO "Installed SDKs:"
-
ps
:
"
ls
\"
C:/Program
Files/Microsoft
SDKs/Windows
\"
"
# Install Python (from the official .msi of http://python.org) and pip when
# not already installed.
-
ps
:
if (-not(Test-Path($env:PYTHON))) { & appveyor\install.ps1 }
# Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
-
"
SET
PATH=%PYTHON%;%PYTHON%
\\
Scripts;%PATH%"
# Check that we have the expected version and architecture for Python
-
"
python
--version"
-
"
python
-c
\"
import
struct;
print(struct.calcsize('P')
*
8)
\"
"
# Upgrade to the latest version of pip to avoid it displaying warnings
# about it being out of date.
-
"
pip
install
--disable-pip-version-check
--user
--upgrade
pip"
# Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the
# target Python version and architecture
-
"
%CMD_IN_ENV%
pip
install
-r
dev-requirements.txt"
build_script
:
# Build the compiled extension
-
"
%CMD_IN_ENV%
python
setup.py
build"
test_script
:
# Run the project tests
-
"
%CMD_IN_ENV%
python
setup.py
nosetests"
after_test
:
# If tests are successful, create binary packages for the project.
-
"
%CMD_IN_ENV%
python
setup.py
bdist_wheel"
-
"
%CMD_IN_ENV%
python
setup.py
bdist_wininst"
-
"
%CMD_IN_ENV%
python
setup.py
bdist_msi"
-
ps
:
"
ls
dist"
artifacts
:
# Archive the generated packages in the ci.appveyor.com build report.
-
path
:
dist\*
#on_success:
# - TODO: upload the content of dist/*.whl to a public wheelhouse
#
appveyor/install.ps1
0 → 100755
View file @
729288fe
# Sample script to install Python and pip under Windows
# Authors: Olivier Grisel, Jonathan Helmus, Kyle Kastner, and Alex Willmer
# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
$MINICONDA_URL
=
"http://repo.continuum.io/miniconda/"
$BASE_URL
=
"https://www.python.org/ftp/python/"
$GET_PIP_URL
=
"https://bootstrap.pypa.io/get-pip.py"
$GET_PIP_PATH
=
"C:\get-pip.py"
$PYTHON_PRERELEASE_REGEX
=
@
"
(?x)
(?<major>\d+)
\.
(?<minor>\d+)
\.
(?<micro>\d+)
(?<prerelease>[a-z]{1,2}\d+)
"
@
function
Download
(
$filename
,
$url
)
{
$webclient
=
New-Object
System.Net.WebClient
$basedir
=
$pwd
.Path +
"\"
$filepath
=
$basedir
+
$filename
if
(
Test-Path
$filename
)
{
Write-Host
"Reusing"
$filepath
return
$filepath
}
# Download and retry up to 3 times in case of network transient errors.
Write-Host
"Downloading"
$filename
"from"
$url
$retry_attempts
=
2
for
(
$i
=
0;
$i
-lt
$retry_attempts
;
$i
++
)
{
try
{
$webclient
.DownloadFile
(
$url
,
$filepath
)
break
}
Catch
[
Exception]
{
Start-Sleep
1
}
}
if
(
Test-Path
$filepath
)
{
Write-Host
"File saved at"
$filepath
}
else
{
# Retry once to get the error message if any at the last try
$webclient
.DownloadFile
(
$url
,
$filepath
)
}
return
$filepath
}
function
ParsePythonVersion
(
$python_version
)
{
if
(
$python_version
-match
$PYTHON_PRERELEASE_REGEX
)
{
return
([
int
]
$matches
.major,
[
int
]
$matches
.minor,
[
int
]
$matches
.micro,
$matches
.prerelease
)
}
$version_obj
=
[
version]
$python_version
return
(
$version_obj
.major,
$version_obj
.minor,
$version_obj
.build,
""
)
}
function
DownloadPython
(
$python_version
,
$platform_suffix
)
{
$major
,
$minor
,
$micro
,
$prerelease
=
ParsePythonVersion
$python_version
if
((
$major
-le 2 -and
$micro
-eq 0
)
`
-or
(
$major
-eq 3 -and
$minor
-le 2 -and
$micro
-eq 0
)
`
)
{
$dir
=
"
$major
.
$minor
"
$python_version
=
"
$major
.
$minor$prerelease
"
}
else
{
$dir
=
"
$major
.
$minor
.
$micro
"
}
if
(
$prerelease
)
{
if
((
$major
-le 2
)
`
-or
(
$major
-eq 3 -and
$minor
-eq 1
)
`
-or
(
$major
-eq 3 -and
$minor
-eq 2
)
`
-or
(
$major
-eq 3 -and
$minor
-eq 3
)
`
)
{
$dir
=
"
$dir
/prev"
}
}
if
((
$major
-le 2
)
-or
(
$major
-le 3 -and
$minor
-le 4
))
{
$ext
=
"msi"
if
(
$platform_suffix
)
{
$platform_suffix
=
".
$platform_suffix
"
}
}
else
{
$ext
=
"exe"
if
(
$platform_suffix
)
{
$platform_suffix
=
"-
$platform_suffix
"
}
}
$filename
=
"python-
$python_version$platform_suffix
.
$ext
"
$url
=
"
$BASE_URL$dir
/
$filename
"
$filepath
=
Download
$filename
$url
return
$filepath
}
function
InstallPython
(
$python_version
,
$architecture
,
$python_home
)
{
Write-Host
"Installing Python"
$python_version
"for"
$architecture
"bit architecture to"
$python_home
if
(
Test-Path
$python_home
)
{
Write-Host
$python_home
"already exists, skipping."
return
$false
}
if
(
$architecture
-eq
"32"
)
{
$platform_suffix
=
""
}
else
{
$platform_suffix
=
"amd64"
}
$installer_path
=
DownloadPython
$python_version
$platform_suffix
$installer_ext
=
[
System.IO.Path]::GetExtension
(
$installer_path
)
Write-Host
"Installing
$installer_path
to
$python_home
"
$install_log
=
$python_home
+
".log"
if
(
$installer_ext
-eq
'.msi'
)
{
InstallPythonMSI
$installer_path
$python_home
$install_log
}
else
{
InstallPythonEXE
$installer_path
$python_home
$install_log
}
if
(
Test-Path
$python_home
)
{
Write-Host
"Python
$python_version
(
$architecture
) installation complete"
}
else
{
Write-Host
"Failed to install Python in
$python_home
"
Get-Content
-Path
$install_log
Exit
1
}
}
function
InstallPythonEXE
(
$exepath
,
$python_home
,
$install_log
)
{
$install_args
=
"/quiet InstallAllUsers=1 TargetDir=
$python_home
"
RunCommand
$exepath
$install_args
}
function
InstallPythonMSI
(
$msipath
,
$python_home
,
$install_log
)
{
$install_args
=
"/qn /log
$install_log
/i
$msipath
TARGETDIR=
$python_home
"
$uninstall_args
=
"/qn /x
$msipath
"
RunCommand
"msiexec.exe"
$install_args
if
(
-not
(
Test-Path
$python_home
))
{
Write-Host
"Python seems to be installed else-where, reinstalling."
RunCommand
"msiexec.exe"
$uninstall_args
RunCommand
"msiexec.exe"
$install_args
}
}
function
RunCommand
(
$command
,
$command_args
)
{
Write-Host
$command
$command_args
Start-Process
-FilePath
$command
-ArgumentList
$command_args
-Wait -Passthru
}
function
InstallPip
(
$python_home
)
{
$pip_path
=
$python_home
+
"\Scripts\pip.exe"
$python_path
=
$python_home
+
"\python.exe"
if
(
-not
(
Test-Path
$pip_path
))
{
Write-Host
"Installing pip..."
$webclient
=
New-Object
System.Net.WebClient
$webclient
.DownloadFile
(
$GET_PIP_URL
,
$GET_PIP_PATH
)
Write-Host
"Executing:"
$python_path
$GET_PIP_PATH
&
$python_path
$GET_PIP_PATH
}
else
{
Write-Host
"pip already installed."
}
}
function
DownloadMiniconda
(
$python_version
,
$platform_suffix
)
{
if
(
$python_version
-eq
"3.4"
)
{
$filename
=
"Miniconda3-3.5.5-Windows-"
+
$platform_suffix
+
".exe"
}
else
{
$filename
=
"Miniconda-3.5.5-Windows-"
+
$platform_suffix
+
".exe"
}
$url
=
$MINICONDA_URL
+
$filename
$filepath
=
Download
$filename
$url
return
$filepath
}
function
InstallMiniconda
(
$python_version
,
$architecture
,
$python_home
)
{
Write-Host
"Installing Python"
$python_version
"for"
$architecture
"bit architecture to"
$python_home
if
(
Test-Path
$python_home
)
{
Write-Host
$python_home
"already exists, skipping."
return
$false
}
if
(
$architecture
-eq
"32"
)
{
$platform_suffix
=
"x86"
}
else
{
$platform_suffix
=
"x86_64"
}
$filepath
=
DownloadMiniconda
$python_version
$platform_suffix
Write-Host
"Installing"
$filepath
"to"
$python_home
$install_log
=
$python_home
+
".log"
$args
=
"/S /D=
$python_home
"
Write-Host
$filepath
$args
Start-Process
-FilePath
$filepath
-ArgumentList
$args
-Wait -Passthru
if
(
Test-Path
$python_home
)
{
Write-Host
"Python
$python_version
(
$architecture
) installation complete"
}
else
{
Write-Host
"Failed to install Python in
$python_home
"
Get-Content
-Path
$install_log
Exit
1
}
}
function
InstallMinicondaPip
(
$python_home
)
{
$pip_path
=
$python_home
+
"\Scripts\pip.exe"
$conda_path
=
$python_home
+
"\Scripts\conda.exe"
if
(
-not
(
Test-Path
$pip_path
))
{
Write-Host
"Installing pip..."
$args
=
"install --yes pip"
Write-Host
$conda_path
$args
Start-Process
-FilePath
"
$conda_path
"
-ArgumentList
$args
-Wait -Passthru
}
else
{
Write-Host
"pip already installed."
}
}
function
main
()
{
InstallPython
$env
:PYTHON_VERSION
$env
:PYTHON_ARCH
$env
:PYTHON
InstallPip
$env
:PYTHON
}
main
appveyor/run_with_env.cmd
0 → 100755
View file @
729288fe
:: To build extensions for 64 bit Python 3, we need to configure environment
:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of:
:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1)
::
:: To build extensions for 64 bit Python 2, we need to configure environment
:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of:
:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0)
::
:: 32 bit builds, and 64-bit builds for 3.5 and beyond, do not require specific
:: environment configurations.
::
:: Note: this script needs to be run with the /E:ON and /V:ON flags for the
:: cmd interpreter, at least for (SDK v7.0)
::
:: More details at:
:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows
:: http://stackoverflow.com/a/13751649/163740
::
:: Author: Olivier Grisel
:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
::
:: Notes about batch files for Python people:
::
:: Quotes in values are literally part of the values:
:: SET FOO="bar"
:: FOO is now five characters long: " b a r "
:: If you don't want quotes, don't include them on the right-hand side.
::
:: The CALL lines at the end of this file look redundant, but if you move them
:: outside of the IF clauses, they do not run properly in the SET_SDK_64==Y
:: case, I don't know why.
@ECHO OFF
SET COMMAND_TO_RUN=%*
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
SET WIN_WDK=c:\Program Files (x86)\Windows Kits\10\Include\wdf
:: Extract the major and minor versions, and allow for the minor version to be
:: more than 9. This requires the version number to have two dots in it.
SET MAJOR_PYTHON_VERSION=%PYTHON_VERSION:~0,1%
IF "%PYTHON_VERSION:~3,1%" == "." (
SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,1%
) ELSE (
SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,2%
)
:: Based on the Python version, determine what SDK version to use, and whether
:: to set the SDK for 64-bit.
IF %MAJOR_PYTHON_VERSION% == 2 (
SET WINDOWS_SDK_VERSION="v7.0"
SET SET_SDK_64=Y
) ELSE (
IF %MAJOR_PYTHON_VERSION% == 3 (
SET WINDOWS_SDK_VERSION="v7.1"
IF %MINOR_PYTHON_VERSION% LEQ 4 (
SET SET_SDK_64=Y
) ELSE (
SET SET_SDK_64=N
IF EXIST "%WIN_WDK%" (
:: See: https://connect.microsoft.com/VisualStudio/feedback/details/1610302/
REN "%WIN_WDK%" 0wdf
)
)
) ELSE (
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
EXIT 1
)
)
IF %PYTHON_ARCH% == 64 (
IF %SET_SDK_64% == Y (
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
) ELSE (
ECHO Using default MSVC build environment for 64 bit architecture
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
)
) ELSE (
ECHO Using default MSVC build environment for 32 bit architecture
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
)
dev-requirements.txt
0 → 100755
View file @
729288fe
nose
wheel
setup.cfg
View file @
729288fe
[metadata]
[metadata]
description-file = README.md
description-file = README.md
\ No newline at end of file
license_file = LICENSE
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment