Add @classmethod / poll() to existing blender class - To hide panels in specific screens

Hi everybody.

I am working on a script for Blender 2.79 which creates a custom screen to be used for some data analysis. Within this screen I would like to only show panels which are related to the Data Analysis scope.

Reguarding my custom panel , I managed to do so by using the @classmethod / poll() decorator:

@classmethod
    def poll(cls, context):
        return (bpy.context.screen.name == 'Data Analysis')

I would like to do the same for default panels (those which come default with Blender) so that within my screen (Data Analysis) I only have my tools, but within other screens it is all still the usual Blender.

Is it possible? How can I do?

Thank you in advance for your help!

I received the answer in another related post.

The trick is to unregister the class, add a poll method and register it back.

An example:

import bpy

from bpy.types import VIEW3D_PT_view3d_cursor

bpy.utils.unregister_class(VIEW3D_PT_view3d_cursor)

def mypoll(cls,context):
    return context.screen.name == "Data Analysis"

VIEW3D_PT_view3d_cursor.poll = classmethod(mypoll)

bpy.utils.register_class(VIEW3D_PT_view3d_cursor)

Which hides the 3D cursot panel in the 3D VIEW area when the screen context is different from ‘Data Analysis’

Thank you @dustractor