PhoenixGenerator  2.2.0
Set of tools to generate code
Loading...
Searching...
No Matches
NanobindTraitTestSetup Class Reference

Class generator for Nanobind property trait. More...

#include <NanobindTraitTestSetup.h>

+ Inheritance diagram for NanobindTraitTestSetup:
+ Collaboration diagram for NanobindTraitTestSetup:

Public Member Functions

virtual void headerExtraInclude (std::set< std::string > &includes, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void headerTestInclude (std::ofstream &fs, const GeneratorMode &mode, const PString &baseFileName) const
 Registration of static method.
 
 NanobindTraitTestSetup ()
 Constructor of NanobindTraitTestSetup.
 
virtual void registerConstructor (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void registerMethod (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void registerProperty (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void registerStaticMethod (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void testCallFunction (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode) const
 
virtual void testFunction (std::ofstream &fs, const PClassConfig &classConfig, const GeneratorMode &mode, const PString &baseFileName) const
 
virtual ~NanobindTraitTestSetup ()
 Destructor of NanobindTraitTestSetup.
 

Detailed Description

Class generator for Nanobind property trait.

Definition at line 15 of file NanobindTraitTestSetup.h.

Constructor & Destructor Documentation

◆ NanobindTraitTestSetup()

NanobindTraitTestSetup::NanobindTraitTestSetup ( )

Constructor of NanobindTraitTestSetup.

Definition at line 10 of file NanobindTraitTestSetup.cpp.

References PAbstractNanobindTraitBackend::PAbstractNanobindTraitBackend().

+ Here is the call graph for this function:

◆ ~NanobindTraitTestSetup()

NanobindTraitTestSetup::~NanobindTraitTestSetup ( )
virtual

Destructor of NanobindTraitTestSetup.

Definition at line 15 of file NanobindTraitTestSetup.cpp.

15{}

Member Function Documentation

◆ headerExtraInclude()

virtual void PAbstractNanobindTraitBackend::headerExtraInclude ( std::set< std::string > & includes,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in NanobindTraitInclude.

Definition at line 70 of file PAbstractTraitBackend.h.

70{}

◆ headerTestInclude()

void NanobindTraitTestSetup::headerTestInclude ( std::ofstream & fs,
const GeneratorMode & mode,
const PString & baseFileName ) const
virtual

Registration of static method.

Reimplemented from PAbstractNanobindTraitBackend.

Definition at line 18 of file NanobindTraitTestSetup.cpp.

18 {
19 PString fileModule = baseFileName.toLower() + "_module";
20 fs << "#!/usr/bin/env python3" << std::endl;
21 fs << "\"\"\"Test script for " << fileModule << " nanobind wrapper\"\"\"" << std::endl << std::endl;
22 fs << "import sys" << std::endl;
23 fs << "import os" << std::endl << std::endl;
24
25 // Essayer d'abord l'import direct (environnement pixi), puis avec build_path
26 fs << "try:" << std::endl;
27 fs << "\timport " << fileModule << std::endl;
28 fs << "\tprint(\"✓ " << fileModule << " imported successfully from environment!\")" << std::endl;
29 fs << "except ImportError:" << std::endl;
30 fs << "\t# Try loading from build directory" << std::endl;
31 fs << "\tbuild_path = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'build', 'src')" << std::endl;
32 fs << "\tsys.path.insert(0, build_path)" << std::endl;
33 fs << "\tprint(f\"Module search path: {build_path}\")" << std::endl;
34 fs << "\tprint(f\"Absolute path: {os.path.abspath(build_path)}\")" << std::endl;
35 fs << "\ttry:" << std::endl;
36 fs << "\t\timport " << fileModule << std::endl;
37 fs << "\t\tprint(\"✓ " << fileModule << " imported successfully from build!\")" << std::endl;
38 fs << "\texcept ImportError as e:" << std::endl;
39 fs << "\t\tprint(f\"✗ Import error: {e}\")" << std::endl;
40 fs << "\t\tprint(\"Verifications to do:\")" << std::endl;
41 fs << "\t\tprint(\"1. Have you compiled the project? (cmake .. && make)\")" << std::endl;
42 fs << "\t\tprint(\"2. Does the .so file exist?\")" << std::endl;
43 fs << "\t\tprint(f\" Check: ls -la {build_path}\")" << std::endl;
44 fs << "\t\tsys.exit(1)" << std::endl << std::endl;
45}

◆ registerConstructor()

virtual void PAbstractNanobindTraitBackend::registerConstructor ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in NanobindTraitMethod.

Definition at line 76 of file PAbstractTraitBackend.h.

76{}

◆ registerMethod()

virtual void PAbstractNanobindTraitBackend::registerMethod ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in NanobindTraitDataStream.

Definition at line 75 of file PAbstractTraitBackend.h.

75{}

◆ registerProperty()

virtual void PAbstractNanobindTraitBackend::registerProperty ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in NanobindTraitProperty.

Definition at line 73 of file PAbstractTraitBackend.h.

73{}

◆ registerStaticMethod()

virtual void PAbstractNanobindTraitBackend::registerStaticMethod ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

Reimplemented in NanobindTraitCheckStream, and NanobindTraitTypeStream.

Definition at line 74 of file PAbstractTraitBackend.h.

74{}

◆ testCallFunction()

virtual void PAbstractNanobindTraitBackend::testCallFunction ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode ) const
inlinevirtualinherited

◆ testFunction()

virtual void PAbstractNanobindTraitBackend::testFunction ( std::ofstream & fs,
const PClassConfig & classConfig,
const GeneratorMode & mode,
const PString & baseFileName ) const
inlinevirtualinherited

The documentation for this class was generated from the following files: