You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@beam.apache.org by GitBox <gi...@apache.org> on 2022/06/04 13:44:49 UTC

[GitHub] [beam] damccorm opened a new issue, #19848: Beam transforms declared inside a method fail to pickle.

damccorm opened a new issue, #19848:
URL: https://github.com/apache/beam/issues/19848

   ```
   
   from apache_beam.internal import pickler                                                          
                                                                                                      
                                                                                                      
                                                                                                      
                             
                                                                          
              
   class Outter():                                                                    
    
   def method(self):                                                                
       class InnerA(object):
                                                            
         def __init__(self):               
                                             
           pass                                           
                              
                                                                         
               
       class InnerB(InnerA):                                                          
   
        def __init__(self):                                                          
           super(InnerB,
   self).__init__()                                             
                                       
                                                 
       o = InnerB()                                   
                                  
       pickler.loads(pickler.dumps(o))                               
                   
                                                                                    
    
   c = Outter()                                                                       
   c.method() 
   
   
   ```
   
   fails with
   ```
   
   RuntimeError: maximum recursion depth exceeded while getting the str of an object
   
   ```
   
   
   Workaround: declare the transforms on the module level. 
   
   
   
   Imported from Jira [BEAM-8482](https://issues.apache.org/jira/browse/BEAM-8482). Original Jira may contain additional context.
   Reported by: tvalentyn.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@beam.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org