gfort2py | Library to allow calling fortran code from python | Wrapper library

 by   rjfarmer Python Version: 2.2.1 License: GPL-2.0

kandi X-RAY | gfort2py Summary

kandi X-RAY | gfort2py Summary

gfort2py is a Python library typically used in Utilities, Wrapper applications. gfort2py has no bugs, it has no vulnerabilities, it has build file available, it has a Strong Copyleft License and it has low support. You can install using 'pip install gfort2py' or download it from GitHub, PyPI.

Library to allow calling fortran code from python. Requires gfortran>=5.3.1, Works with both python 2.7 and python 3.*. Current stable version is 1.1.5.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              gfort2py has a low active ecosystem.
              It has 64 star(s) with 17 fork(s). There are 8 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 1 open issues and 25 have been closed. On average issues are closed in 432 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of gfort2py is 2.2.1

            kandi-Quality Quality

              gfort2py has 0 bugs and 0 code smells.

            kandi-Security Security

              gfort2py has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              gfort2py code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              gfort2py is licensed under the GPL-2.0 License. This license is Strong Copyleft.
              Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.

            kandi-Reuse Reuse

              gfort2py releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              Installation instructions, examples and code snippets are available.
              gfort2py saves you 1301 person hours of effort in developing the same functionality from scratch.
              It has 2920 lines of code, 433 functions and 20 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed gfort2py and discovered the below as its top functions. This is intended to give you an instant insight into gfort2py implemented functionality, and help decide if they suit your requirements.
            • Get the array from a pointer
            • Checks if the pointer is allocated
            • Return a list of variable values from the given address
            • Set the argtypes of the function
            • Returns the ctypes ctype definition
            • Return the ctypes module
            • Load data from pickle file
            • Re - run the model
            • Load data from file
            • Return the value as a string
            • Return a numpy array
            • Convert Python object to ctypes
            • Convert ctype to python type
            • Set values from a dictionary
            • Set the mod
            • Convert a Python value to a ctype
            • Create a dtype15
            • Return a ctypes function for this array
            • Parse a dt string
            • Parse a single parameter value
            • Set the value of the object
            • Convert Python type to ctypes
            • Return the ctype definition
            • Convert a Python value to a C type
            • Convert python value to ctype
            • Convert python type to ctypes
            Get all kandi verified functions for this library.

            gfort2py Key Features

            No Key Features are available at this moment for gfort2py.

            gfort2py Examples and Code Snippets

            Functions pointers:
            Pythondot img1Lines of Code : 20dot img1License : Strong Copyleft (GPL-2.0)
            copy iconCopy
            integer function my_func(func_arg)
            	integer func_arg
            	
            	my_func = func_arg(5)
            end function my_func
            	
            
            
            x.my_func('func_arg') # With a string of the name of the argument of the function
            #or
            x.my_func(x.func_arg) # With the functin itself
            
            def my_py_fu  
            Accessing common block elements
            Pythondot img2Lines of Code : 9dot img2License : Strong Copyleft (GPL-2.0)
            copy iconCopy
            module my_mod
            	implicit none
            	
            	integer :: a,b,c
            	common /comm1/ a,b,c
            	
            
            x.a
            x.b
            x.c
              
            gfort2py,Using,Derived types
            Pythondot img3Lines of Code : 8dot img3License : Strong Copyleft (GPL-2.0)
            copy iconCopy
            x.my_dt={'x':1,'y':'abc'}
            
            y=x.my_dt.get(copy=False)
            y.x
            y.y
            
            x.my_dt={'x':1,'y':{'a':1}}
            
            x.my_dt.y
            
            x.my_dt.y.a
            x.my_dt['a']
              

            Community Discussions

            QUESTION

            How could I create an element wrapper in Javascript?
            Asked 2022-Mar-31 at 22:44

            For pure educational and curiosity purposes, I am trying to create an element-wrapper object that allows me to tack-on my own properties and methods to an element. The behavior I'm trying to simulate is basically this:

            ...

            ANSWER

            Answered 2022-Mar-31 at 21:53

            I haven't test this, but maybe something like this:

            Source https://stackoverflow.com/questions/71699506

            QUESTION

            Try each function of a class with functools.wraps decorator
            Asked 2022-Feb-22 at 18:18

            I'm trying to define a decorator in order to execute a class method, try it first and, if an error is detected, raise it mentioning the method in which failed, so as to the user could see in which method is the error.

            Here I show a MRE (Minimal, Reproducible Example) of my code.

            ...

            ANSWER

            Answered 2022-Feb-22 at 17:59

            For decorators with parameters, you need one more level of nesting:

            Source https://stackoverflow.com/questions/71225952

            QUESTION

            How to call destructor of C++ class safely from a Python wrapper class using ctypes?
            Asked 2022-Feb-11 at 10:50

            I built a C++ shared library, that exports functions for constructing, destructing and interacting with an implemented class. I want to write a wrapper class in Python, which loads the compiled .dll and wraps all the functions as a class using ctypes .

            How do I wrap the destructor function of the C++ class safely so it will be called in any case (Normal Garbage Collection, Exceptions etc) ?

            ...

            ANSWER

            Answered 2022-Feb-11 at 10:50

            As per Python's data model doc:

            Objects are never explicitly destroyed; however, when they become unreachable they may be garbage-collected. An implementation is allowed to postpone garbage collection or omit it altogether...

            ...

            Some objects contain references to “external” resources such as open files or windows. It is understood that these resources are freed when the object is garbage-collected, but since garbage collection is not guaranteed to happen, such objects also provide an explicit way to release the external resource, usually a close() method. Programs are strongly recommended to explicitly close such objects. The try…finally statement and the with statement provide convenient ways to do this.

            So even if in most cases __del__ method of an object is being called by GC, it is not guaranteed. with statement (from PEP 343) on the other hand guarantees that if __enter__ method of the object succeeded, then __exit__ method will be called at the end of the statement, both in case of normal execution and in case of exception. (More detailed in this question)

            An example could be as below, with the usage of "object-closing" context manager from PEP 343 examples, and a wrapper class with close method which calls native object's destructor:

            Source https://stackoverflow.com/questions/71068960

            QUESTION

            Decorator to output average of historical inputs and outputs to function
            Asked 2022-Jan-01 at 22:34

            I have functions that takes an integer as input and also output an integer. I need to write a decorator to wrap them.

            The decorator will save a tuple with two numbers: the average of the inputs and the average of the outputs. For every call to that kind of function, the averages will be printed.

            I'm not really sure about the way. I tried this, but it just returns the same input and output of the current function call, how can I calculate the average of all the inputs and outputs till now? or else how do I keep the args amount for the next call to decorator?

            ...

            ANSWER

            Answered 2022-Jan-01 at 22:34
            from functools import wraps
            
            def dec(func):
                @wraps(func)
                def wrap(*args):
                    wrap.counter += 1
                    wrap.sum_inputs += int(*args)
                    wrap.sum_outputs += func(*args)
                    avg_input = wrap.sum_inputs / wrap.counter
                    avg_output = wrap.sum_outputs / wrap.counter
                    print("Average of inputs ", avg_input)
                    print("Average of outputs ", avg_output)
                    return func(*args)
                wrap.counter = 0
                wrap.sum_inputs = 0
                wrap.sum_outputs = 0
                return wrap
            

            Source https://stackoverflow.com/questions/70550222

            QUESTION

            Is it possible to wrap a function so that the wrapper has the same arguments plus another argument which is situated after these arguments?
            Asked 2021-Dec-31 at 21:36

            My goal here is to wrap an API function so that the wrapper has the same arguments as the API function and then also has one additional final parameter. The API function is very generic so the wrapper needs to take the types and parameters from this inside function.

            My reasoning is that I need to enhance the API function with additional optional arguments. For another developer using this wrapper function, it would be an awful experience to have this optional argument as the first argument.

            My current attempt is as follows:

            ...

            ANSWER

            Answered 2021-Dec-31 at 21:36

            In argument lists of functions the spread must come after other arguments. However, the same is not true for tuple types.

            That means you could declare args like:

            Source https://stackoverflow.com/questions/70535870

            QUESTION

            How to get wrapper creating and saving figure, around plot function?
            Asked 2021-Dec-09 at 15:58

            I read about wrappers and would like to use it for plotting. I wanted to have a wrapper function that creates and saves figure in my plot functions. However I get the error shown below. Here is my code:

            ...

            ANSWER

            Answered 2021-Dec-09 at 15:58

            I would just declare your fig as an attribute to your plotting class and just pass x and y to your wrapper. See code below:

            Source https://stackoverflow.com/questions/70291804

            QUESTION

            __str__ wrapper in custom Exception
            Asked 2021-Nov-25 at 13:50

            Why does the below code print error msg instead of ABC\nerror msg?

            ...

            ANSWER

            Answered 2021-Nov-25 at 12:47

            Forget the Exception class for now. Consider this:

            Source https://stackoverflow.com/questions/70110613

            QUESTION

            How to implement a multiprocessing python decorator?
            Asked 2021-Nov-18 at 08:49

            I want to write a wrapper for calling CPU-demanding functions in asyncio.

            I want it to be used like this:

            ...

            ANSWER

            Answered 2021-Nov-17 at 14:54

            Maybe the original function and the wrapped one not having the same id is the problem?

            In a way, yes. Before the function is sent to the target process it's pickled, which fails in your case, because the func object in the decorator's scope is different from the fact object in your main module, after rebinding by the decorator. Look at this and this question for some background.

            Based on these answers I created an example on how what you want can be achieved. The trick is to create a picklable "runner" function, that the target process can use to look up your orginal function from some sort of registry (e.g. a dict...) and run it. This is of course just an example. You will probably not want to create your ProcessPoolExecutor in the decorator.

            Source https://stackoverflow.com/questions/70002454

            QUESTION

            wrapping a C printf() call in a preprocessor directive
            Asked 2021-Oct-29 at 15:37

            I am attempting to port C code from one platform to another and remove dependencies.

            There is a debug function called dbg_out which prints out like printf().

            The prototype is void dbg_out(int dbgMask, const char *pFormat, ...);

            Here is an example call : dbg_out((5, "SerialDriver : (%04x-%08lx) \n", id, sn));

            I would like to map this function to a normal printf() call but having some issues.

            I have attempted this so far

            ...

            ANSWER

            Answered 2021-Oct-29 at 14:51

            You need use vprintf instead, to be able to use unknown arguments

            Source https://stackoverflow.com/questions/69770816

            QUESTION

            Why is fortran wrapper needed in C programming?
            Asked 2021-Oct-18 at 20:07

            I'm recently reading some source code in cBLAS, and something make me unclear. In many functions, a .c file calls Fortran Wrapper instead of writing the codes directly in the C file, like the following file:

            ...

            ANSWER

            Answered 2021-Oct-18 at 20:07

            "What I wanna ask is actually why there is a need for a intermediate wrapper, why not write it in C?"

            The whole CBLAS is a wrapper to BLAS. BLAS is defined using a reference Fortran implementation and a Fortran API. BLAS can be implemented in C or assembly, but the API is set to be Fortran.

            Therefore the CBLAS does not actually contain the whole functionality. The functionality is in whatever BLAS implementation you install. The very common reference implementation is written in Fortran, but it is not the fastest one.

            However, you probably could call the sdsdot function (in whichever language it is actually implemented) directly from C cblas_sdsdot. The author of CBLAS chose to implement a Fortran intermediate subroutine sdsdotsub. I do not have an answer why that is necessary right now. The difference is very small, really just changing a function to a subroutine.

            As @jxh correctly comments, there is a larger risk of ABI incompatibility in calling a function vs calling a subroutine (similar to a void function).

            Source https://stackoverflow.com/questions/69619355

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install gfort2py

            or install via pip.

            Support

            Pull requests should target the maint branch for fixing issues, please check the test suite passes before sending a pull request. Maint will be periodically merged with master for new releases, master should never have a broken test suite.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install gfort2py

          • CLONE
          • HTTPS

            https://github.com/rjfarmer/gfort2py.git

          • CLI

            gh repo clone rjfarmer/gfort2py

          • sshUrl

            git@github.com:rjfarmer/gfort2py.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Wrapper Libraries

            jna

            by java-native-access

            node-serialport

            by serialport

            lunchy

            by eddiezane

            ReLinker

            by KeepSafe

            pyserial

            by pyserial

            Try Top Libraries by rjfarmer

            mesaplot

            by rjfarmerPython

            pyMesa

            by rjfarmerPython

            pyAstroApi

            by rjfarmerPython

            ads_my_citations

            by rjfarmerPython

            multimesa

            by rjfarmerPython