Ticket #970 (closed: fixed)
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: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: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: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
- but watch out to make sure it doesn't happen again. Changeset: 8ed18b45ec5015b2c2364b4264846ebb84a97eb9
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
- but watch out to make sure it doesn't happen again. Changeset: 8ed18b45ec5015b2c2364b4264846ebb84a97eb9
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
- but watch out to make sure it doesn't happen again. Changeset: 8ed18b45ec5015b2c2364b4264846ebb84a97eb9
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
- but watch out to make sure it doesn't happen again. Changeset: 8ed18b45ec5015b2c2364b4264846ebb84a97eb9
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
- but watch out to make sure it doesn't happen again. Changeset: 8ed18b45ec5015b2c2364b4264846ebb84a97eb9
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
- but watch out to make sure it doesn't happen again. Changeset: 8ed18b45ec5015b2c2364b4264846ebb84a97eb9
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