Update headers, fix style for some py files
[alexxy/gromacs.git] / src / python / sip / trajectoryanalysis / analysismodule.sip
index 35dae1cbb8e117d2b63f6320ad1c4280158be5a1..cd5c65628d586318e104bfd68010ba3c260ad501 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -67,39 +67,27 @@ struct t_trxframe {
     bool bPrec;
     double prec;
     bool bX;
-    SIP_PYOBJECT x {
+    SIP_PYOBJECT x /NoSetter/ {
     %GetCode
         sipPy = array2dToNumpy(sipCpp->natoms, 3, sipCpp->x);
-    %End
-    %SetCode
-
     %End
     };
     bool bV;
-    SIP_PYOBJECT v {
+    SIP_PYOBJECT v /NoSetter/ {
     %GetCode
         sipPy = array2dToNumpy(sipCpp->natoms, 3, sipCpp->v);
-    %End
-    %SetCode
-
     %End
     };
     bool bF;
-    SIP_PYOBJECT f {
+    SIP_PYOBJECT f /NoSetter/ {
     %GetCode
         sipPy = array2dToNumpy(sipCpp->natoms, 3, sipCpp->f);
-    %End
-    %SetCode
-
     %End
     };
     bool bBox;
-    SIP_PYOBJECT box {
+    SIP_PYOBJECT box /NoSetter/ {
     %GetCode
         sipPy = array2dToNumpy(3, 3, sipCpp->box);
-    %End
-    %SetCode
-
     %End
     };
     bool bPBC;
@@ -118,36 +106,24 @@ struct t_pbc {
     int ndim_ePBC;
     int ePBCDX;
     int dim;
-    SIP_PYOBJECT box {
+    SIP_PYOBJECT box /NoSetter/ {
     %GetCode
         sipPy = array2dToNumpy(3, 3, sipCpp->box);
-    %End
-    %SetCode
-
     %End
     };
-    SIP_PYOBJECT fbox_diag {
+    SIP_PYOBJECT fbox_diag /NoSetter/ {
     %GetCode
         sipPy = array1dToNumpy(3, sipCpp->fbox_diag);
-    %End
-    %SetCode
-
     %End
     };
-    SIP_PYOBJECT hbox_diag {
+    SIP_PYOBJECT hbox_diag /NoSetter/ {
     %GetCode
         sipPy = array1dToNumpy(3, sipCpp->hbox_diag);
-    %End
-    %SetCode
-
     %End
     };
-    SIP_PYOBJECT mhbox_diag {
+    SIP_PYOBJECT mhbox_diag /NoSetter/ {
     %GetCode
         sipPy = array1dToNumpy(3, sipCpp->mhbox_diag);
-    %End
-    %SetCode
-
     %End
     };
     double max_cutoff2;
@@ -169,25 +145,42 @@ public:
     virtual void finish() = 0;
 };
 
-class TrajectoryAnalysisModule {
+%ModuleHeaderCode
+#include "gromacs/utility/exceptions.h"
+%End
+
+%VirtualErrorHandler vehandler
+    SIP_RELEASE_GIL(sipGILState);
+
+    GMX_THROW(gmx::InternalError("Python virtual overload raised an exception, see traceback"));
+%End
+
+%Include vector.sip
+
+class TrajectoryAnalysisModule /VirtualErrorHandler=vehandler/ {
 
 %TypeHeaderCode
 #include <gromacs/trajectoryanalysis/analysismodule.h>
 using namespace gmx;
 %End
 public:
-    virtual void initOptions(Options *options, TrajectoryAnalysisSettings *settings) = 0;
-    virtual void optionsFinished(Options *options, TrajectoryAnalysisSettings *settings);
+    virtual void initOptions(IOptionsContainer *options, TrajectoryAnalysisSettings *settings) = 0;
+    virtual void optionsFinished(TrajectoryAnalysisSettings *settings);
     virtual void initAnalysis(const TrajectoryAnalysisSettings &settings, const TopologyInformation &top) = 0;
     virtual void initAfterFirstFrame(const TrajectoryAnalysisSettings &settings, const t_trxframe &fr);
 //    virtual TrajectoryAnalysisModuleDataPointer      startFrames (const AnalysisDataParallelOptions &opt, const SelectionCollection &selections);
-    virtual void analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc, TrajectoryAnalysisModuleData *pdata ) = 0;
+    virtual void analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc, TrajectoryAnalysisModuleData *pdata) = 0;
     virtual void finishFrames(TrajectoryAnalysisModuleData *pdata);
     virtual void finishAnalysis(int nframes) = 0;
     virtual void writeOutput() = 0;
+    virtual const std::vector<TrajectoryAnalysisModule*> getBatch();
+    virtual const std::vector<char*> getArgv(int);
     const char* name() const;
     const char* description() const;
     int datasetCount() const;
+//    const std::vector<std::string> datasetNames() const;
+    AbstractAnalysisData& datasetFromIndex(int index) const;
+    AbstractAnalysisData& datasetFromName(const char *name) const;
 protected:
     TrajectoryAnalysisModule(const char *name, const char *description);
 private: