Ticket #970 (closed: fixed)

Opened 11 years ago

Last modified 5 years ago

Python Curve Fits

Reported by: Nick Draper Owned by: Martyn Gigg
Priority: blocker Milestone: Release 2.5
Component: Mantid Keywords:
Cc: Blocked By:
Blocking: Tester: Roman Tolchenov

Description

Allow curve fit functions to be defined in Python

Change History

comment:1 Changed 11 years ago by Nick Draper

  • Owner set to Martyn Gigg
  • Status changed from new to assigned

comment:2 Changed 10 years ago by Nick Draper

  • Owner changed from Martyn Gigg to Steve Williams

comment:3 Changed 10 years ago by Nick Draper

  • Milestone changed from Iteration 26 to Iteration 27

Bulk move of tickets to iteration 27, if your ticket is essential for Iteration 26 then move it back.

comment:4 Changed 10 years ago by Nick Draper

  • Owner changed from Steve Williams to Martyn Gigg
  • Component set to Mantid

comment:5 Changed 10 years ago by Nick Draper

  • Milestone changed from Iteration 27 to Iteration 28

Bulk move of tickets at the end of iteration 27

comment:6 Changed 10 years ago by Nick Draper

  • Priority changed from major to critical

comment:7 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 28 to Iteration 29

Bulk move of tickets at the end of iteration 28

comment:8 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 29 to Iteration 30

Accepted and assigned tickets moved at iteration 29 code freeze

comment:9 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 30 to Iteration 31

Bulk move of tickets to iteration 31 at the iteration 30 code freeze

comment:10 Changed 9 years ago by Nick Draper

  • Milestone changed from Iteration 32 to Iteration 33

Moved to iteration 33 at iteration 32 code freeze

comment:11 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.1 to Release 2.2

Moved at end of release 2.1

comment:12 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.2 to Release 2.3

Moved at the end of release 2.2

comment:13 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.3 to Release 2.4

Moved to milestone 2.4

comment:14 Changed 8 years ago by Martyn Gigg

  • Milestone changed from Release 2.4 to Release 2.5

comment:15 Changed 8 years ago by Martyn Gigg

  • Priority changed from critical to blocker

comment:16 Changed 8 years ago by Nick Draper

  • Priority changed from blocker to critical

comment:17 Changed 8 years ago by Martyn Gigg

  • Priority changed from critical to blocker

comment:18 Changed 8 years ago by Martyn Gigg

  • Status changed from assigned to accepted

comment:19 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:20 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:21 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:22 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:23 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:24 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:25 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:26 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:27 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:28 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:29 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:30 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:31 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:32 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:33 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:34 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:35 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:36 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key. Refs #970

Changeset: 383df8dd7d31b31c81ccabc8a3a4e9ecbe420817

comment:37 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:38 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:39 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:40 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:41 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:42 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:43 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:44 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:45 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:46 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:47 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:48 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:49 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:50 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:51 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:52 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:53 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:54 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:55 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:56 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:57 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:58 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:59 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:60 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:61 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:62 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:63 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:64 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:65 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:66 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:67 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:68 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:69 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:70 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:71 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:72 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:73 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:74 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:75 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:76 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:77 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:78 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:79 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:80 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 913479f1f9a0abef5052de2b86fec32cf5b40758

comment:81 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:82 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:83 Changed 7 years ago by Russell Taylor

Re #970. Naughty quick fix of CMakeLists directly on develop.

Somehow it had picked up some entries that don't yet exist in this directory. Doing it this way avoids any git merging cleverness

comment:84 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:85 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:86 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:87 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:88 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop. Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: a24121ca3b8b299e5f98afe7f4803ed309800f62

comment:89 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:90 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:91 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:92 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:93 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:94 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:95 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:96 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:97 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:98 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:99 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:100 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:101 Changed 7 years ago by Martyn Gigg

  • Status changed from accepted to verify
  • Resolution set to fixed

branch: feature/970_python_fitfunctions

Tester: The aim here is to be able to define functions that integrate with the optimization (fitting) framework in a similar way to how Python algorithms integrate with the rest of the algorithms. Essentially everything should be blind to the fact the the function is actually written in Python, apart from the fact that they will be slower.

The documentation will follow but there are two example functions in Code/Mantid/Framework/PythonInterface/plugins/functions/Examples that implement a peak function and a simple 1D function as a guide.

comment:102 Changed 7 years ago by Martyn Gigg

Don't start assistant in HelpWindow constructor. Refs #970

This prevents it from popping up on shutdown if it hadn't been started yet. Also add a small wait for the process to close if the window was open while the MantidPlot was closed.

Changeset: e6838514495c04005514fe37d3de74a055664ed4

comment:103 Changed 7 years ago by Roman Tolchenov

  • Status changed from verify to verifying
  • Tester set to Roman Tolchenov

comment:104 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:105 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:106 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:107 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:108 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:109 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:110 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:111 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:112 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:113 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:114 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:115 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:116 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:117 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:118 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:119 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:120 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:121 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:122 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:123 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:124 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:125 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:126 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:127 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:128 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:129 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:130 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:131 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:132 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:133 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:134 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:135 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:136 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:137 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:138 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:139 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:140 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:141 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:142 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:143 Changed 7 years ago by Roman Tolchenov

  • Status changed from verifying to closed

It is working.

comment:144 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:145 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:146 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:147 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:148 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:149 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:150 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:151 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:152 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:153 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:154 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:155 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:156 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:157 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:158 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:159 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:160 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:161 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:162 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:163 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:164 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:165 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:166 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:167 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:168 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:169 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:170 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:171 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:172 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:173 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:174 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:175 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:176 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:177 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:178 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:179 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:180 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:181 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:182 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:183 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:184 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:185 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:186 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:187 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:188 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:189 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:190 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:191 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:192 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:193 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:194 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:195 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:196 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:197 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:198 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:199 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:200 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:201 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:202 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:203 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:204 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:205 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:206 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:207 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:208 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:209 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:210 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:211 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:212 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:213 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:214 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:215 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:216 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:217 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:218 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:219 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:220 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:221 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:222 Changed 7 years ago by Russell Taylor

Re #970. Naughty quick fix of CMakeLists directly on develop.

Somehow it had picked up some entries that don't yet exist in this directory. Doing it this way avoids any git merging cleverness

comment:223 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop. Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: a24121ca3b8b299e5f98afe7f4803ed309800f62

comment:224 Changed 7 years ago by Russell Taylor

Re #970. Naughty quick fix of CMakeLists directly on develop.

Somehow it had picked up some entries that don't yet exist in this directory. Doing it this way avoids any git merging cleverness

comment:225 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop. Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: a24121ca3b8b299e5f98afe7f4803ed309800f62

comment:226 Changed 7 years ago by Russell Taylor

Re #970. Naughty quick fix of CMakeLists directly on develop.

Somehow it had picked up some entries that don't yet exist in this directory. Doing it this way avoids any git merging cleverness

comment:227 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop. Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: a24121ca3b8b299e5f98afe7f4803ed309800f62

comment:228 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:229 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:230 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:231 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:232 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:233 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:234 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:235 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:236 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:237 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:238 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:239 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:240 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:241 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:242 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:243 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:244 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:245 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:246 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:247 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:248 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:249 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:250 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:251 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:252 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:253 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:254 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:255 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:256 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:257 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:258 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:259 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:260 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:261 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:262 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:263 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:264 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:265 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:266 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:267 Changed 7 years ago by Russell Taylor

Re #970. Naughty quick fix of CMakeLists directly on develop.

Somehow it had picked up some entries that don't yet exist in this directory. Doing it this way avoids any git merging cleverness

comment:268 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop. Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: a24121ca3b8b299e5f98afe7f4803ed309800f62

comment:269 Changed 7 years ago by Russell Taylor

Re #970. Naughty quick fix of CMakeLists directly on develop.

Somehow it had picked up some entries that don't yet exist in this directory. Doing it this way avoids any git merging cleverness

comment:270 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop. Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: a24121ca3b8b299e5f98afe7f4803ed309800f62

comment:271 Changed 7 years ago by Martyn Gigg

Add ability to replace instantiators to DynamicFactory rather than

just on the AlgorithmFactory. Refs #970

Changeset: 27533ab4e2b9a7cd2486f9ef5a91fe0b292fd924

comment:272 Changed 7 years ago by Martyn Gigg

Add first cut of IFunction1D export that allows inheritance

in Python. Refs #970

Changeset: 2977dafac8f902081efd6f2a653a344abfacc0f8

comment:273 Changed 7 years ago by Martyn Gigg

Remove errorMsg from CallMethod arguments. Refs #970

This way it will only get constructed if an error is actually going to occur.

Changeset: dfdcc855c448a3200a2bbf5f51c3b2fab4286126

comment:274 Changed 7 years ago by Martyn Gigg

Add CallMethod structs for 2 arguments Refs #970

Copy-and-paste needs tidying up

Changeset: 47915c82dee552501a1fed5c6616d71a0b2829de

comment:275 Changed 7 years ago by Martyn Gigg

Refactor CallMethod with macros to avoid duplication.Refs #970

Changeset: c20e9c6f30267a11fe2c5126d5adbb4b18944b80

comment:276 Changed 7 years ago by Martyn Gigg

Flip input/ouput arguments around. Refs #970

Changeset: 5542c77d44de4c39d3ebb3042495ee2357fd6421

comment:277 Changed 7 years ago by Martyn Gigg

Add IFunctionAdapter for access to IFunction's protected attrs.

Refs #970

Changeset: c7307e943556a9d6d7d6cfff103e654a9d746cfb

comment:278 Changed 7 years ago by Martyn Gigg

Simple attribute handling Refs #970

Changeset: d97227e6a958413b8d2f5c505f00120e6fb4d3e1

comment:279 Changed 7 years ago by Martyn Gigg

Added parameter handling. Refs #970

Changeset: 0f6362941388ecba9d52d5b699c80b29f133fe36

comment:280 Changed 7 years ago by Martyn Gigg

FitPropertyBrowser now listens for updates

This ensures that fit functions can be defined at runtime and not just when starting Mantid. Refs #970

Changeset: 2396cbbc1b36d29944ee6ed214bcdf859d0394cc

comment:281 Changed 7 years ago by Martyn Gigg

Export IPeakLocation to Python

This requires the Jacobian class to be exported too along with an update to the CallMethods* to add an overload for a single argument. Refs #970

Changeset: 184aa3a793f6077b292bca3326b4cf09df155a14

comment:282 Changed 7 years ago by Martyn Gigg

Add setProperty overloads for strings to IFunction export.

Refs #970

Changeset: 1dbd0cd6a299a3d3f204b76b02ebf0732972b114

comment:283 Changed 7 years ago by Martyn Gigg

Fix issues with passing Jacobian to call_method

boost::python::call_method won't translate the Jacobian in it's raw pointer form so we have to transform it into a Python object first and then pass it along. Refs #970

Changeset: b235d1381d6ae701cd92122e1349243f31753d4f

comment:284 Changed 7 years ago by Martyn Gigg

Mild performance improvement for functionLocal/1D calls to Python.

These now avoid the heavy wrapper CallMethod and use the boost call_method directly to avoid double locking the GIL and checking that the python method exists each time.

Refs #970

Changeset: d7d443bc78aee5672fa3bb8a38efdb2bcfe801db

comment:285 Changed 7 years ago by Martyn Gigg

Add active parameter support to Python fit functions.

Also add some debug statements to the Fit iteration loop.Refs #970

Changeset: afe05e30a6cded1b7bdf974e88c5858467cd863e

comment:286 Changed 7 years ago by Martyn Gigg

Change function1D & functionLocal signature to return outputs

The speed impact seems to be not as great as envisaged and this signature makes it much simpler to write understandable functions. Refs #970

Changeset: b0c2197878e604814ece8c6cb8093210d35a261c

comment:287 Changed 7 years ago by Martyn Gigg

Allow IFunction1D::functionDeriv1D to be overridden in Python.

If it is not overridden then it calls the base class method. Refs #970

Changeset: 3361fdd16da51b09e3caf2af6db8e8c29e7d9162

comment:288 Changed 7 years ago by Martyn Gigg

Introduce new directory structure for python plugins.

There is now a single directory called plugins that contains sub- directories for algorithms & functions. These get installed into the package under ROOT/plugins/python. This requires new keys to find the directories and deprecates pythonalgorithms.directories key.

Users will receive warnings about the old key being deprecated and are instructed about what to do.

Refs #970

Changeset: f40047511b3f5541172efcfce80e8c5fcd41c837

comment:289 Changed 7 years ago by Martyn Gigg

Sweep up some references to old algorithms dir key.

Refs #970

Changeset: 18358351cc86a017022db58bf08291ecf069989c

comment:290 Changed 7 years ago by Martyn Gigg

Fix package path for old API algorithm plugins. Refs #970

Changeset: 5ec96b8cf11792b38f525d9fa43594b479341493

comment:291 Changed 7 years ago by Martyn Gigg

Deprecate registerAlgorithm in favour of AlgorithmFactory.subscribe

This is more in line with how the new functions work and how the C++ side works too. Refs #970

Changeset: ee60134f167a9f667c97b1518651e63ffed98ff6

comment:292 Changed 7 years ago by Martyn Gigg

Pass python object by reference to const rather than value. Refs #970

Changeset: f4ca9d75e66664e400807a0695b4d7cf1491dd77

comment:293 Changed 7 years ago by Martyn Gigg

Allow python functions to override catgeories.

Also adds simple Python Jacobian test. Refs #970

Changeset: 9a5e869b29d21c2aea89ea3f02971794a984f4b6

comment:294 Changed 7 years ago by Martyn Gigg

Flag new directory keys to ConfigService so it turns them absolute

Refs #970

Changeset: cd48231448a0514d818486f15c6166455d3d0f8e

comment:295 Changed 7 years ago by Martyn Gigg

Add JacobianTest file. Refs #970

Changeset: 18ccb45cc88185f5eb405ed6bfa462068a767d88

comment:296 Changed 7 years ago by Martyn Gigg

Remove debugging statement. Refs #970

Changeset: 8df8680791c4a460741c01c40645ab6aaee6dd39

comment:297 Changed 7 years ago by Martyn Gigg

Allow IFunction::setAttribute to be overridden in Python. Refs #970

Changeset: eba2e5c22f4ae0e5cb8906c6fac2d222664708e2

comment:298 Changed 7 years ago by Martyn Gigg

Move PythonAlgorithms test to plugins/algorithms

Refs #970

Changeset: 36eaf3ad633af84794a888156e83616beca2d01a

comment:299 Changed 7 years ago by Martyn Gigg

Add an example peak function along with a test. Refs #970

Changeset: 6278c49e412285102d45769462d8d10a50d4df3a

comment:300 Changed 7 years ago by Martyn Gigg

Fix plugin loading issue causing sys test failure. Refs #970

Changeset: e4780a843f803d402f49548e912d8d8f33f129c6

comment:301 Changed 7 years ago by Martyn Gigg

Cludge to work with current state of develop. Refs #970

Changeset: 11252484ed15548ce738bd263e593f61d932a247

comment:302 Changed 7 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/master' into feature/970_python_fitfunctions Refs #970

Conflicts:

Code/Mantid/Framework/PythonInterface/test/python/PythonAlgorithms/CMakeLists.txt

Changeset: b5bcca2bb292e1a3b70d8ffaf00fed4a1a2fec9c

comment:303 Changed 7 years ago by Martyn Gigg

Move added Python algorithms to new location. Refs #970

Changeset: ffd2e809722b2d29b18be08a8b6f12ce0f2d829b

comment:304 Changed 7 years ago by Martyn Gigg

Add IPeakFunctionTest.py. Refs #970

Changeset: 2dab736893f8a8677269697b5a8b27cf930cdf32

comment:305 Changed 7 years ago by Martyn Gigg

Move more algorithms to new location. Refs #970

Changeset: 29e208721697f9b4ce091791a0b2669b57fd1cb4

comment:306 Changed 7 years ago by Martyn Gigg

Translate python errors to exceptions during fit func calls.

Avoiding the boost python wrappers means we have to handle this too. Refs #970

Changeset: ef94fe0d0888e96ef340f1fb17ef143dadcc325f

comment:307 Changed 7 years ago by Martyn Gigg

Fix ExamplePeakFunction & test. Refs #970

Changeset: d28ca829d6fe49b329f6d38dab4cdacb99fafb31

comment:308 Changed 7 years ago by Martyn Gigg

Add Example1DFunction. Refs #970

Changeset: f0b0b1323ac6b5301442ae37ac86d8b1a47ea48b

comment:309 Changed 7 years ago by Martyn Gigg

Switch to AlgorithmFactory.subscribe rather than registerAlgorithm

since the latter is now deprecated. Refs #970

Changeset: 3c250c33eabf56cc0b50af58b78523a28abb7282

comment:310 Changed 7 years ago by Peter Peterson

Merge branch 'feature/6858_fitfunc_wiki' into develop into 6856_ConvertToDiffractionMDWS_v2

comment:311 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop into 6856_ConvertToDiffractionMDWS_v2

comment:312 Changed 7 years ago by Peter Peterson

Merge branch 'feature/6858_fitfunc_wiki' into develop into 6856_ConvertToDiffractionMDWS_v2

comment:313 Changed 7 years ago by Martyn Gigg

Merge branch 'feature/970_python_fitfunctions' into develop into 6856_ConvertToDiffractionMDWS_v2

comment:314 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 1818

Note: See TracTickets for help on using tickets.